APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android

Dimension: px
Commencer à balayer dès la page:

Download "APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android"

Transcription

1 Applications Java sous Android IvMad, APPLICATIONS JAVA Android Partie I 1. Android Développement d'activités Java sous Android L'objectif principal de ce cours est de découvrir la programmation sous Android, sa plate-forme de développement et les spécificités du développement embarqué sur téléphone mobile. Le cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet. Ivan MADJAROV Applications Java sous Android IvMad, L'architecture du système Android Android est un système d'exploitation basé Linux pour les appareils mobiles (Smartphone et Tablette) avec une interface de programmation Java. Le SDK Android a tous les outils nécessaires pour le développement d'applications: Compilateur Débogueur Emulateur Machine virtuelle Applications Java sous Android IvMad, Application Android Android estunsecrééparl'open Handset Alliance dirigée par Google. Android propose une interface de programmation Java avec sa propre machine virtuelle DVM (Virtual Machine Dalvik). L'interface fournit des outils pour la compilation, le débogage et un simulateur de périphérique mobile est embarqué. Android utilise une machine virtuelle spéciale. Son byte-code est incompatible avec celui de Java standard (Oracle). Un outil "dx" est proposé pour convertir un fichier Java classe dans le format Android "dex" (Dalvik exécutable). Une application Android est emballée dans un fichier.apk (Android Package) par AAPT (Android Asset Packaging Tool) Pour développer Google fournit ADT (Android Development Tools) pour l'ide Eclipse et pour l'ide NetBeans de Sun (Oracle).

2 Applications Java sous Android IvMad, Application Android L'ADT effectue automatiquement la conversion d'une classe "dex" en.apk au cours du déploiement. Android supporte le graphisme 2-D et 3-D avec OpenGL library. Le stockage de données dans une BD est pris en charge par SQLite. SQLite est une Open Source Database intégrée dans Android. SQLite supporte les fonctionnalités standards pour une BDR telles que SQL syntaxe, la gestion des transactions et "prepared statements". Une application Android s'exécute dans son propre processus et sous son propre nom d'utilisateur qui est généré automatiquement au cours de son déploiement. L'application Android est isolée des autres applications en cours et ne peut pas facilement affecter leur sécurité. Applications Java sous Android IvMad, L'architecture du système Android Le GUI d'android est un système mono-thread, événementiel avec une bibliothèque à composants extensibles organisée autour du modèle Model-View-Controller (MVC). Model: représente les données et le conteneur de données: base de données, images, sons, etc. View: c'est la partie de l'application chargée de rendre l'affichage, l'envoi de l'audio aux haut-parleurs, générant un retour tactile. Controller: c'est la partie qui répond à des actions externes: le clavier, l'écran tactile, les appels entrants. Applications Java sous Android IvMad, Le développement Android Android dispose d'un SDK basé sur le langage Java. Le SDK d'android est disponible pour les plateformes Linux, Mac et Windows à l'adresse : Pour développer avec l'ide Eclipse Google fournit un plugin ADT (Android Development Tools): Pour le développementt avec l'ide NetBeans Android propose le plugin "nbandroid" accessible à : Le développement pour Android est possible aussi sans un IDE particulier en se servant des commandes du SDK d'android avec Ant pour la compilation et la gestion du simulateur. A consulter : Applications Java sous Android IvMad, Le développement Android La chaine de production Java Android

3 Applications Java sous Android IvMad, Le système Android Applications Java sous Android IvMad, Java2SE (Oracle) et Java Dalvik (Google) Architecture d'une application Java Android Applications Java sous Android IvMad, Architecture Android Applications Java sous Android IvMad, L'application Android Une application Android en général est composée d'éléments identifiables qui peuvent se séquencer différemment en fonction des objectifs : 1. Interface graphique : la partie visuelle de l'application, elle sert de support pour les interactions de l'utilisateur. 2. Traitement d'un événement : Les interactions de l'utilisateur avec le GUI déclenche des événements qui sont gérés par les écouteurs d'événements (Listener) 3. Opération de fond (Intent) : Des opérations de fond peuvent échanger des messages par la technique des Intents. 4. Connexion TCP ou Bluetooth : connexion à un réseau Wi-Fi ou à un autre Smartphone. 5. Affichage des résultats : on retourne à l'interface graphique

4 Applications Java sous Android IvMad, APPLICATIONS JAVA Android Partie II 2. Android Développement sous Eclipse avec SDK Android L'objectif principal de ce cours est de découvrir la programmation sous Android, sa plate-forme de développement et les spécificités du développement embarqué sur téléphone mobile. Le cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet. Ivan MADJAROV Applications Java sous Android IvMad, Développer avec Eclipse Les outils nécessaires sont : Android SDK: Eclipse: Le plugin ADT de Eclipse: Environnement intégré : adt-bundle-windows-x86_ zip Préparation de l environnement Installation du SDK Android dans SE. Installation plug-in ADT pour Android dans Eclipse Installation d un téléphone virtuel Android Configuration d'une unité virtuel dans l'ide Eclipse Un téléphone ou tablette Android se connectent à un PC par le câble USB. Applications Java sous Android IvMad, Développer avec Eclipse Zone de stockage des projets Eclipse

5 Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse

6 Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Installation du plug-in ADT pour Eclipse -> Help -> Installer un nouveau Software

7 Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse Renseigner les champs: Name et Location Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Développer avec Eclipse

8 Applications Java sous Android IvMad, Développer avec Eclipse Applications Java sous Android IvMad, Installation du SDK Android Applications Java sous Android IvMad, Installation du SDK Android Applications Java sous Android IvMad, Développer avec Eclipse Installation d un téléphone virtuel Android

9 Applications Java sous Android IvMad, Android SDK Manager Applications Java sous Android IvMad, Android Virtual Device Manager Installation d un téléphone virtuel Android Applications Java sous Android IvMad, Android Virtual Device Manager Applications Java sous Android IvMad, Android Virtual Device Manager

10 Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Nouveau projet Eclipse-Android

11 Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Code généré à la création du projet Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Pour exécuter l'application on click sur le bouton "Run". L'émulateur Android est lancé (le chargement est long)

12 Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Applications Java sous Android IvMad, Plug-Ins Eclipse-Android Le "premier_projet_android" avec les composants à compiler et à exécuter dans un environnement d'émulateur La classe R accède aux ressources Classe interne associée à une ressource Nom de la ressource dans le répertoire res/layout Applications Java sous Android IvMad, Nouveau projet Eclipse-Android Log.i: méthode de traçage de l'exécution d'une application Android Applications Java sous Android IvMad, ADT Bundle pour Windows ADT Bundle est seul kit de développement Android qui inclue tous les outils nécessaires pour le développement d'une application sous Eclipse: Eclipse + ADT plugin Android SDK Tools Android Platform-tools La dernière version d'android La dernière version de l'émulateur Android On peut télécharger à partir de l'adresse:

13 Applications Java sous Android IvMad, Intégrer un Smartphone au ADT Le Smartphone doit être configuré en mode "PTP" Avant de lancer Eclipse il faut brancher le Smartphone à l'ordinateur Ouvrir un invité de commandes et exécuter la commande: C:\Program Files\Android\android-sdk\platform-tools\adb.exe -c devices A la demande du Smartphone autoriser l'adresse MAC du PC sur le Smartphone (étape à ne pas rater!)

14 Applications Java sous Android IvMad, APPLICATIONS JAVA Android Partie III 3. Architecture d'une application Android L'objectif principal de ce cours est de découvrir la programmation sous Androïd, sa plate-forme de développement et les spécificités du développement embarqué sur téléphone mobile. Le cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet. Ivan MADJAROV Applications Java sous Android IvMad, Composants Android (1) Les éléments essentiels du Framework Android : Activity : C'est la composante principale d'une application Android. Elle représente la couche représentative et visuelle de l'application qui peut avoir plusieurs couches qui alternent entre elles lors de l'exécution. Fragment : C'est une portion d'interface plus souple et dynamique. Donc, une activité peut être constituée de plusieurs fragments. Views : Le IHM (GUI) est un "layout" ouune"widgets" couche qui hérite des classes "android.view.view"et "android.view.viewgroups". Service : A la différence d'une Activity un Service ne possède pas d'interface mais permet l'exécution d'un traitement en tâche de fond. Donc il n'a pas de vue, mais permet l exécution d un algorithme sur un temps indéfini et terminé en fonction de la tâche. Applications Java sous Android IvMad, Composants Android (2) Content Provider : Il permet le partage des données entre applications, via un fournisseur de contenu (photos, contacts,...). Intents : Les composantes Android (Activity, Service, Broadcast Receiver) communiquent via des messages système que l'on appelle Intent (intention). Une application peut appeler un service ou une activité (explicite) ou appeler un service du système Android (implicites). Broadcast Receiver : C'est le récepteur d'événements qui réagit à un événement système et les "Intents" implicites. Il ne possède pas d'interface utilisateurs et est destiné à l'exécution de tâches légères. Pour des tâches plus lourdes on lance un service. Un broadcast receiver peut afficher un message, lancer une activité ou un service. Intent-Filter : un filtre d'intention sert à indiquer à une activité, service ou broadcast receiver quels Intents peuvent implicitement traiter.

15 Applications Java sous Android IvMad, Cycle de vie d une application Android public class MainActivity extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.acceuil); // suspendue détruit: ondestroy invoqué protected void ondestroy() { super.ondestroy(); // actif suspendue: ne détient plus le focus protected void onpause() { super.onpause(); // suspendue actif: onresume invoqué protected void onresume() { super.onresume(); // démarrage actif: détient le focus et est démarré protected void onstart() { super.onstart(); protected void onstop() { super.onstop(); Applications Java sous Android IvMad, Architecture d'une application Android oncreate : La méthode est appelée à la création d'une activité pour initialiser les données nécessaires à l'exécution de l'application. A l'appel de la méthode un Bundle est passé en argument. Il contient l état de sauvegarde enregistré lors de la dernière exécution. onstart : La méthode est appelée dans le cas où l'application est en arrière-plan et qu elle repasse en avant-plan. Si l'activité ne peut pas passer en avant plan alors, l activité sera transférée à OnStop. onresume : La méthode est appelée après OnStart quand l'application passe en background à cause d une autre application. onpause : La méthode met en pause l'application et se relance avec la méthodes OnResume. onstop : Appelée quand l'activité n est plus visible. ondestroy : Appelée quand l'application est fermée (processus closed). Applications Java sous Android IvMad, Contexte d'une application Android Le contexte relève l'état courant d'une application et les informations sur son environnement et sert à récupérer des objets transmis par d'autres parties de l'application. On dispose de quatre méthodes: getapplicationcontext() : récupère le contexte de l'application en cours; getcontext() : récupère le contexte de la vue courante; getbasecontext() : récupère le contexte défini par la méthode setbasecontext() this : peut être utilisé quant on hérite directement de la classe Context. Applications Java sous Android IvMad, Programmer sous Android Interface graphique par programmation (partie dynamique) Pour faciliter le développement, Android propose un grand nombre de "widgets": des éléments d interface graphique qu'on peut utiliser dans une application de manière directe et simple. On peut utiliser les classiques : boutons, listes déroulantes, cases à cocher mais aussi de composants plus poussés : des horloges, des sélecteurs de dates, des galeries photos et des afficheurs de vidéos. Interface graphique par fichier XML (partie statique) Le fichier XML sera lu par le programme et l interface graphique sera automatiquement générée en conséquence. Il devient ainsi beaucoup plus facile de modifier et de faire évoluer une interface graphique déjà existante, et pouvoir l'adaptée suivant le contexte.

16 Applications Java sous Android IvMad, Le principe de l'interface graphique Applications Java sous Android IvMad, Le principe de l'interface graphique Le GUI sous Android est basée sur les View, les Layout et les Widget. Un Layout (gabarit) est une View (vue) spéciale qui peut contenir d'autres View, ainsi le Layout joue le rôle d'un conteneur. Le Layout n'est pas destinée à fournir du contenu ou des contrôles à l'utilisateur. Les layouts se contentent de disposer les Views par un gestionnaire de placement. Les Views se chargent de mettre le contenu utilisateur en place. Une View qui ne peut pas en englober d'autres est appelée un widget (composant). Applications Java sous Android IvMad, Composants graphiques (Java) La class View est une zone de composant et source d'événement ce qui forme la base du GUI. Applications Java sous Android IvMad, Vues et schémas (Java) Les éléments graphiques héritent de la classe View. On peut regrouper des éléments graphiques dans une ViewGroup. ViewGroup : le regroupement est prédéfini sous la forme de schémas (layout) qui proposent une prédispositions des objets graphiques: LinearLayout : dispose les éléments de gauche à droite et du haut vers le bas; RelativeLayout : les éléments enfants les uns par rapport aux autres; TableLayout : disposition en imitant un tableau par lignes et colonnes; FrameLayout : disposition en haut à gauche en empilant les éléments. La classe ViewGroup ressemble à un gestionnaire de placement connu en Swing de Java2SE. Les déclarations peuvent se faire aussi en XML, ce qui évite de passer par les instanciations Java (on verra ça par la suite).

17 Applications Java sous Android IvMad, Programmer: Bonjour tout le monde Applications Java sous Android IvMad, Label de texte et zone de texte (Java) import android.app.activity; import android.os.bundle; Fait passer une import android.widget.textview; instance de public class Bonjour extends Activity { l'activité public void oncreate(bundle icicle) { super.oncreate(icicle); TextView tv = new TextView(this); tv.settext("bonjour tout le monde, Android!"); setcontentview(tv); Simulateur d'unité mobile sous Android Au-delà d'un composant graphique il faut définir un conteneur et l'ordre de placement des composants La méthode settext de la classe TextView met un String dans GUI. La méthode setcontentview affiche la chaine de caractère dans l'interface graphique. Applications Java sous Android IvMad, Avec une image (Java) Applications Java sous Android IvMad, TextView, EditText, ImageView, Bouton Installer un écouteur de vue ImageView() est la boite qui peut contenir une image. Les images utiles au projet sont placées dans le dossier "res/drawable" Instancier le widget Associer l'écouteur au widget Méthode appelée au click du bouton

18 Applications Java sous Android IvMad, Récupérer la saisie d'un texte (Java) public void onclick(view view) { // au click changer le texte sur la bouton btn.settext("bouton cliqué"); // récupérer le texte tapé dans le champ String montxt = edit.gettext().tostring(); // définir un affichage de texte TextView txt = new TextView(this); // mettre le texte du champ txt.settext(montxt); // ajouter un texte au Layout layout.addview(txt); Applications Java sous Android IvMad, Android - un bouton package ivmad.tp.nowdatetime; import android.os.bundle; import android.app.activity; import android.view.view; import android.widget.button; import java.util.date; Appel d'une méthode suite à l'événement "click" sur un bouton public class MainActivity extends Activity implements View.OnClickListener { Button btn; public void oncreate(bundle icicle) { super.oncreate(icicle); btn = new Button(this); btn.setonclicklistener(this); updatetime(); setcontentview(btn); public void onclick(view v) { updatetime(); private void updatetime() { btn.settext(new Date().toString()); Applications Java sous Android IvMad, Déroulement de l'exemple (1) La déclaration de paquetage doit être identique à celle utilisée pour créer le projet. Pour un projet Java il faut importer les classes auxquelles l'application fait référence. La plupart des classes spécifiques à Android se trouvent dans le paquetage android Les classes de Java SE sont utilisables par les programmes Android, mailil faut consulter le guide de référence des classes Android pour connaitre leur disponibilité et compatibilité. Les activités sont des classes publiques héritées de la classe de base android.app.activity. Les widgets sont des éléments d interface graphique qu'on peut utiliser dans une application. Applications Java sous Android IvMad, Déroulement de l'exemple (2) L activité contient un bouton : Button btn; Un bouton est un widget Android et peut être utilisé dans une application. Pour capturer tous les clics de bouton dans l'activité elle-même on implémente OnClickListener (écouteur d'événement). La méthode oncreate() est appelée au lancement de l activité, alors on établi un chaînage vers la superclasse afin d initialiser l activité Android de base (super.oncreate(<bundle object>)). L instance de bouton créée (new Button(this)), on demande l envoie de tous les clics sur ce bouton à l instance de l activité (setonclicklistener()) qui appelle la méthode onclick(view v). Un appel la méthode privée updatetime() est constitué, et pour finir on configure la vue du contenu de l activité avec le bouton lui-même (setcontentview()).

19 Applications Java sous Android IvMad, Déroulement de l'exemple (3) Tous les widgets dérivent de la classe de base View. Bundle icicle est un gestionnaire opaque, que toutes les activités reçoivent lors de leur création. Avec Android un click sur un bouton fait appel de la méthode onclick() sur l instance OnClickListener configurée pour ça. L écouteur reçoit la vue qui a déclenché le click et on fait alors appel à la méthode privée updatetime(). L ouverture de l activité (oncreate()) ou un click sur le bouton (onclick()) doitprovoquerlamiseàjourdulabelduboutonavecla date courante. On utilise pour cela la méthode settext(), qui fonctionne exactement comme avec les JButton de Swing. Applications Java sous Android IvMad, Toast : popup surgissant Afficher un contenu dans un popup surgissant La classe Toast avec la méthode maketext affiche une fenêtre popup pour un délai 'court' ou 'long'. La méthode prend trois paramètres: // référence vers l'application Context context = getapplicationcontext(); String text = "Bonjour toast!"; // le texte à afficher int duration = Toast.LENGTH_SHORT; // La durée d'exposition Toast toast = Toast.makeText(context, text, duration); toast.show(); // Visualiser Appel direct du Toast pour une durée 'courte' Toast.makeText(this,text,Toast.LENGTH_SHORT).show(); Appel direct du Toast pour une durée 'longue' Toast.makeText(this,text,Toast.LENGTH_LONG).show(); Applications Java sous Android IvMad, CheckBox CheckBox cba, cbb, cbc; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); LinearLayout ll = new LinearLayout(this); ll.setgravity(gravity.top); ll.setorientation(linearlayout.vertical); // add button Button b = new Button(this); b.settext("cliquez ici!"); b.setonclicklistener(this); ll.addview(b); //add checkboxes cba = new CheckBox(this); cba.settext("bleu"); ll.addview(cba); cbb = new CheckBox(this); cbb.settext("blanc"); ll.addview(cbb); cbc = new CheckBox(this); cbc.settext("rouge"); ll.addview(cbc); setcontentview(ll); Afficher avec Toast public void onclick(view v) { Toast tst; String answer=""; if (cba.ischecked()) { answer += cba.gettext()+" "; if (cbb.ischecked()) { answer += cbb.gettext()+" "; if (cbc.ischecked()) { answer += cbc.gettext()+" "; tst = Toast.makeText(this, answer, Toast.LENGTH_LONG).show(); Applications Java sous Android IvMad, Radio bouton protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Gestionnaire de placement LinearLayout ll = new LinearLayout(this); ll.setgravity(gravity.top); ll.setorientation(linearlayout.vertical); // Bouton Button b = new Button(this); b.settext("affichez votre langage préféré"); b.setonclicklistener(this); ll.addview(b); // Radio boutons en groupe rg = new RadioGroup(this); rg.setorientation(radiogroup.vertical); rba = new RadioButton(this); rba.settext("java"); rg.addview(rba); rbb = new RadioButton(this); rbb.settext("python"); rg.addview(rbb); rbc = new RadioButton(this); rbc.settext("c#"); rg.addview(rbc); // Placement dans layout ll.addview(rg); setcontentview(ll); Afficher avec Toast public void onclick(view v) { Toast tst; if ( rba.ischecked() ) { tst = Toast.makeText(this, rba.gettext(), Toast.LENGTH_LONG); tst.show(); if ( rbb.ischecked() ) { tst = Toast.makeText(this, rbb.gettext(), Toast.LENGTH_LONG); tst.show(); if ( rbc.ischecked() ) { tst = Toast.makeText(this, rbc.gettext(), Toast.LENGTH_LONG); tst.show();

20 Applications Java sous Android IvMad, Android Spinner (ComboBox) public class SpinnerComBoxActivity extends Activity implements OnClickListener { String colors[] = {"Red","Blue","White","Yellow","Black"; Spinner sp; public class SpinnerComBoxActivity extends Activity implements OnClickListener { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); LinearLayout ll = new LinearLayout(this); ll.setgravity(gravity.top); ll.setorientation(linearlayout.vertical); Button b = new Button(this); b.settext("affichez votre choix"); b.setonclicklistener(this); ll.addview(b); sp = new Spinner(this); // Appliquer une 'Array' pour le 'Spinner' ArrayAdapter<String> sparrayadapter = new ArrayAdapter<String> (this,android.r.layout.simple_spinner_item,colors); sp.setadapter(sparrayadapter); ll.addview(sp); setcontentview(ll); public void onclick(view v) { int i = sp.getselecteditemposition(); Toast.makeText(getBaseContext(),"Votre choix: +colors[i], Toast.LENGTH_SHORT).show(); Applications Java sous Android IvMad, Android Spinner (ComboBox) Pour réaliser la liste déroulante avec la classe Spinner dans le fichier activity_spinner_com_box.xml il faut ajouter le code suivant: <Spinner android:id="@+id/spinner01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawselectorontop="true"> </Spinner> Enregistrer la description XML du Spinner dans le layout de l'activité Applications Java sous Android IvMad, Android Toggle button Applications Java sous Android IvMad, Android GUI dynamique public class ToggleButtonMainActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); ScrollView scrl = new ScrollView(this); final LinearLayout ll = new LinearLayout(this); ll.setorientation(linearlayout.vertical); scrl.addview(ll); // ajouter un 'Toggle button' ToggleButton tb = new ToggleButton(this); tb.settexton("on"); tb.settextoff("off"); tb.setchecked(true); tb.setlayoutparams(new LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); ll.addview(tb); this.setcontentview(scrl); Un bouton "ON/OFF"

21 Applications Java sous Android IvMad, Android : Ecrire dans un fichier WriteData(getApplicationContext(),textOut); // Appel de la méthode... // context: id de l'application public void WriteData(Context context, String data) { FileOutputStream fout = null; OutputStreamWriter osw = null; try { // Ouvrir un fichier 'contacts.dat' en mode ajouter fout = context.openfileoutput("contacts.dat",mode_append); osw = new OutputStreamWriter(fOut); osw.write(data); // Ecrire les données dans le flux de sortie osw.flush(); // Vider le flux de sortie // affiche le résultat de l'opération Toast.makeText(context,"Sauvegarde réussie",toast.length_short).show(); catch (Exception e) { Toast.makeText(context,"Problème de sauvegarde!",toast.length_short).show(); finally { try { osw.close(); // Fermer le flux d'écriture fout.close(); // Fermer le fichier 'contact.dat' catch (IOException e) { Toast.makeText(context,"Problème de sauvegarde",toast.length_short).show(); Applications Java sous Android IvMad, Android : Lire dans un fichier String dataread = ReadData(getApplicationContext()); // Appel de la méthode... // context: id de l'application public String ReadData(Context context) { FileInputStream fin = null; InputStreamReader isr = null; char[] inputbuffer = new char[255]; String data = null; try { fin = context.openfileinput("contacts.dat"); // Ouvrir le fichier isr = new InputStreamReader(fIn); // Lire dans le flux d'entrée isr.read(inputbuffer); // Lire le contenu du tampon data = new String(inputBuffer); // Convertir les données en chaine de car. // affiche le contenu du fichier dans un popup surgissant Toast.makeText(context,"Contenu: "+data,toast.length_short).show(); catch (Exception e) { Toast.makeText(context,"Erreur de lecture",toast.length_short).show(); finally { try { isr.close(); fin.close(); catch (IOException e) { Toast.makeText(context,"Erreur de lecture",toast.length_short).show(); return data;

22 Applications Java sous Android IvMad, APPLICATIONS JAVA Android Partie IV 4. Géolocalisation, Géocodage, Wi-Fi, Bluetooth, Applications réseaux TCP L'objectif principal de ce cours est de découvrir la programmation sous Android, sa plate-forme de développement et les spécificités du développement embarqué sur téléphone mobile. Le cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet. Ivan MADJAROV Applications Java sous Android IvMad, Géolocalisation : Le principe La géolocalisation se base sur Global Positioning System (GPS) GPS compte 24 satellites répartis sur 6 orbites parcourues en 12h pour couvrir le globe terrestre. Les satellites NAVSTAR (Navigation Satellite Timing And Ranging) sont situés à km d'altitude et diffusent leur position et l'heure sur des fréquences dans la bande des micro-ondes (~1500Mhz). Le GPS se synchronise puis calcule la distance avec le satellite grâce à la différence de temps en émission et réception. distance = deltat * c (~vitesse de la lumière ~300000km/s) Le GPS fonctionne par triangulation. 4 satellites sont nécessaires pour calculer la position et l'altitude. Source: Yann Caron, Programmation Android - CNAM Position détectée avec 3 satellites sur une surface 2D Applications Java sous Android IvMad, Java Android : Géolocalisation (1) Les deux principaux éléments pour utiliser les services de géolocalisation sont: Gestionnaire de localisation qui fournit l'accès aux services de localisation Fournisseur de localisation en fonction de la technologie utilisée pour la localisation de l'appareil. Pour accéder au gestionnaire de localisation il faut obtenir l'instance de LOCATION_SERVICE par la méthode getsystemservice: String servicename = Context.LOCATION_SERVICE; LocationManager locationmanager = (LocationManager)getSystemService(svcName); L'utilisation des services doit être déclarer dans le fichier AndroidManifest.xml avec la ligne: <uses permission android:name="android.permission.access_fine_location"/>

23 Applications Java sous Android IvMad, Java Android : Géolocalisation (2) Applications Java sous Android IvMad, Java Android : Géolocalisation (3) Pour trouver le dernier emplacement connu par le GPS on s'adresse à un fournisseur de localisation avec la méthode getlastknownlocation: String provider = LocationManager.GPS_PROVIDER; Location loc = locationmanager.getlastknownlocation(provider); La méthode getlastknownlocation ne demande pas au fournisseur de localisation de mettre à jour la position courante! L'objet Location renvoyé inclut toutes les informations de position disponibles dans le fournisseur: Latitude (méthode location.getlatitude();) Longitude (méthode location.getlongitude();) Altitude (méthode location.getaltitude();) Vitesse et heure à laquelle la position a été déterminée (getspeed()) Applications Java sous Android IvMad, Java Android : Géolocalisation (4) Applications Java sous Android IvMad, Java Android : Géolocalisation (5) L'exemple précédent s'appuie sur la dernière position connu (getlastknownlocation(provider)) L'exemple peut évoluer en équipant l'application d'un écouteur de changement de position pour qu'on puisse mettre à jour la position suivant son évolution. Les mises à jour peuvent être programmées pour toutes les 2 secondes et lorsqu'un déplacement est détecté de plus de 5 mètres. Plutôt que sélectionner un fournisseur (provider), on peut laisser Androïd choisir le provider disponible le mieux adapté à l'environnement ou aux critères déposés (objet Criteria) Créer une instance de LocationListever qui déclenchera la méthode updatewithnewlocation chaque fois qu'un changement de position sera détecté.

24 Applications Java sous Android IvMad, Java Android : Géolocalisation (6) En général une unité mobile Androïd propose des moyens de déterminer sa géolocalisation: Par triangulation des stations GPS (Global Positioning System), Par recouvrement des cellules mobiles (3G/4G), Par le réseau Wifi. Pour une géolocalisation on implémente l'interface LocationListener. On s'adresse ensuite à l objet LocationManager pour gérer l'abonnement aux mises à jour des coordonnées GPS. Dans l'activité (View) on surcharge 4 méthodes : onproviderenabled est appelée quand une source de localisation est activée; onproviderdisabled est appelée quand une source de localisation est désactivée; onstatuschanged est appelée quand le statut d une source change; onlocationchanged est appelée quand les coordonnées GPS changent. Applications Java sous Android IvMad, Java Android : Géolocalisation (7) Pour s abonner à la mise à jour des coordonnées GPS, il faut utiliser la méthode requestlocationupdates(string, long, float, LocationListener) qui possède 4 arguments : Le provider utiliser pour recevoir les mises à jour des coordonnées utilisateurs (GPS / NETWORK ) L'intervalle minimum entre deux notifications (en millisecondes) L'intervalle minimum entre deux notifications (en mètre) L instance du LocationListener Il est conseillé de s abonner aux mises à jour des coordonnées GPS dans la méthode onresume et de se désabonner dans la méthode onstop afin de stopper l utilisateur des ressources de localisation alors que l application n en a plus l utilité, sinon le processus de mise à jour continu est la consommation de la batterie est importante. Applications Java sous Android IvMad, Java Android : Géolocalisation (8) Applications Java sous Android IvMad, Java Android : Géolocalisation (9) Pour trouver les fournisseurs de localisation disponibles: LocationManager.GPS_PROVIDER; LocationManager.NETWORK_PROVIDER; LocationManager.PASSIVE_PROVIDER; // localisation par GPS // localisation par Wi Fi // localisation par GSM (2G/3G/4G) Le fichier AndroidManifest.xml doit être enrichi avec les permissions requises pour accéder aux services de localisation, Internet et au GPS: <uses permission android:name="android.permission.access_coarse_location" /> <uses permission android:name="android.permission.access_fine_location" /> <uses permission android:name="android.permission.internet" />

25 Applications Java sous Android IvMad, Java Android : Géocodage (1) Applications Java sous Android IvMad, Java Android : Géocodage (2) Le géocodage traduit des adresses en coordonnées géographiques et inversement avec la classe Geocoder dont l'utilisation demande deux permissions dans le manifest de l'activité: <uses library android:name="com.google.android.maps" /> <uses permission android:name="android.permission.internet" /> La classe Geocoder donne accès à deux fonctions de géocodage: Géocodage avant qui donne la latitude et la longitude d'une adresse; Géocodage inverse qui donne l'adresse en fonction de la latitude et la longitude. Les fonctions renvoient une liste d'objets Address. La granularité de la liste dépend des limites indiquées à l'appel. Geodecoder geodecoder = new Geodecoder(getApplicationContext(),Local.getDefault()); List<Address> addresses = null; Applications Java sous Android IvMad, Android : Wi-Fi (1) Le Wi-Fi est géré par un WifiManager. Le WifiManager représente un Android Wi-Fi Connectivity Service. configurer une connexion Wi-Fi, gérer une connexion en cours, scanner pour des points d'accès, enregistrer tout changement dans une connexion Wi-Fi. Le Wi-FiManager utilise la méthode getsystemservice en précisant le type de service en constante: Context.WIFI_SERVICE String service = Context.WIFI_SERVICE; WifiManager wifi = (WifiManager)getSystemService(service); L'autorisation pour l'utilisation du WiFiManager doit être inscrite dans le fichier manifest du projet: <uses permission android:name="android.permission.access_wifi_state"/> <uses permission android:name="android.permission.change_wifi_state"/> Applications Java sous Android IvMad, Android : Wi-Fi (2) Le Wi-FiManager peut: activer ou désactiver la fonction Wi-Fi par la méthode setwifienabled, obtenir le statut actuel du Wi-Fi par la méthode getwifistate, vérifier si le Wi-Fi est activé avec la méthode iswifienabled. if (!wifi.iswifienabled()) if (wifi.getwifistate()!= WifiManager.WIFI_STATE_ENABLING) wifi.setwifienabled(true); La méthode getwifistate() retourne un entier entre 0 et 4 pour indiquer la situation en cours du WiFi de l'appareil : 0 WIFI_STATE_DISABLING 1 WIFI_STATE_DISABLED 2 WIFI_STATE_ENABLING 3 WIFI_STATE_ENABLED 4 WIFI_STATE_UNKNOWN

26 Applications Java sous Android IvMad, Android : Wi-Fi (3) En mettant tout ensemble on vérifie l'état de l'appareil : public class WiFiStateActivity extends Activity { String[] wifistate = {"WIFI_STATE_DISABLING", "WIFI_STATE_DISABLED", "WIFI_STATE_ENABLING", "WIFI_STATE_ENABLED", protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); String service = Context.WIFI_SERVICE; WifiManager wifi = (WifiManager)getSystemService(service); Toast.makeText(this, "Wi Fi : " + wifistate[wifi.getwifistate()], Toast.LENGTH_LONG).show(); Applications Java sous Android IvMad, Android : Wi-Fi (4) Pour obtenir des informations détaillées sur une connexion, il faut se référer à la méthode getconnectioninfo de la classe WifiInfo. La classe WifiInfo offre un certain nombre de méthodes pour manipuler les paramètres du réseau Wi-Fi: getssid : Retourne l'identificateur du réseau en cours; getbssid() : Retourne l'identificateur de base de ce réseau; getmacaddress() : Retourne l'adresse MAC de l'appareil; getipaddress() : Retourne l'adresse IP de l'appareil en format 'int'. Une conversion en format 'String' est alors nécessaire. getlinkspeed() : Retourne le débit en Mbps getrssi() : Retourne le niveau de puissance reçu du réseau connecté. Applications Java sous Android IvMad, Android : Wi-Fi (5) Afficher les éléments d'une connexion Wi-Fi en ajoutant les composants dans un StringBuilder par la méthode append() Conversion d'un numéro IP de décimal en string Applications Java sous Android IvMad, Android : Wi-Fi (6) Avec le Wi-FiManager on peut procéder à la recherche des bornes Wi- Fi (hotspot) dans le voisinage par la méthode startscan. L'opération utilise un Broadcasr Receiver avec un Intent SCAN_RESULTS_AVAILABLE_ACTION qui est passé en paramètre pour assurer un traitement asynchrone et la prise du résultat quand le scan a terminé. On appelle la méthode getscanresults pour obtenir les résultats sous la forme d'une liste d'objets ScanResult. Chaque objet du type ScanResult comporte les détails de la connexion repérée. Le résultat du Scan est récupéré dans un objet de type List<E>. C'est une collection d'éléments indexés à partir de zéro. List<ScanResult> results = wifi.getscanresults();

27 Applications Java sous Android IvMad, Android : Wi-Fi (7) Retourne le nombre de hotspot détectés et le SSID avec le plus fort signale à proximité Applications Java sous Android IvMad, Android : Bluetooth (1) Bluetooth est un protocole d'interconnexion à de courtes distances, de type "peer-to-peer" avec une bande passante faible. La communication est cryptée entre les périphériques appariés. L'API Bluetooth permet de scanner et de lier les appareils entre eux et de transférer des données. Les connexions Bluetooth sont gérées par les classes suivantes : BluetoothAdapter : est l'unité locale où l'application Bluetooth est lancée. BluetoothDevice : est le périphérique distant avec lequel on cherche à communiquer. BluetoothSocket : fait une demande de connexion au périphérique distant par l'appel de la méthode createrfcommsockettoservicerecord. BluetoothServerSocket : installe un Socket Bluetooth serveur pour écouter les demandes de connexion entrantes en utilisant la méthode listenusingrfcommwithservicerecord. Applications Java sous Android IvMad, Android : Bluetooth (2) Pour s'assurer que le périphérique possède le Bluetooth on procède à une vérification rapide en instanciant la classe BluetoothAdapter. Le retour de son objet va indiquer la présence ou non de cette option. BluetoothAdapter bluetoothadapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothadapter == null) Toast.makeText(BluetoothActivity.this, "Pas de Bluetooth!", Toast.LENGTH_SHORT).show(); else Toast.makeText(BluetoothActivity.this, "Le Bluetooth est disponible", Toast.LENGTH_SHORT).show(); Pour autoriser l'opération, il faut ajouter la permission d'accéder aux API Bluetooth en ajoutant la ligne suivante dans le fichier AndroidManifest.xml : <uses permission android:name="android.permission.bluetooth"/> Applications Java sous Android IvMad, Android : Bluetooth (3) Le Bluetooth peut être disponible sur l'appareil mais non activé. On peut demander l'autorisation à l'utilisateur d'activer cette option. Pour cela, on appelle la méthode startactivityforresult avec un paramètre d'intent BluetoothAdapter.ACTION_REQUEST_ENABLE. On vérifie que le Bluetooth n'est pas activé et on demande son activation : private final static int BLUETOOTH_ACTIVATION = 1; BluetoothAdapter bluetoothadapter = BluetoothAdapter.getDefaultAdapter();... if (!bluetoothadapter.isenabled() { startactivityforresult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), BLUETOOTH_ACTIVATION); Un dialog-box incitera l'utilisateur d'accepter ou non l'activation du Bluetooth sur son appareil. Le résultat de sa décision est récupérable par la méthode onactivityresult.

28 Applications Java sous Android IvMad, Android : Bluetooth (4) Applications Java sous Android IvMad, Android : Bluetooth (5) On surcharge la méthode onactivityresult pour savoir si le Bluetooth est activé ou non. La méthode est appelée à la sortie de la boite de protected void onactivityresult(int requestcode,int resultcode,intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == BLUETOOTH_ACTIVATION) { if (resultcode == RESULT_OK) { Toast.makeText(BluetoothActivity.this, "Bluetooth est activé", Toast.LENGTH_SHORT).show(); else { Toast.makeText(BluetoothActivity.this, "Bluetooth non activé", Toast.LENGTH_SHORT).show(); Applications Java sous Android IvMad, Android : Bluetooth (6) Si on rend l'appareil Bluetooth détectable cela permet à d'autres appareils de le découvrir et de se connecter par la suite. Pour cela, on utilise la méthode startactivityforresult avec le paramètre Intent approprié : startactivityforresult(new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE), BLUETOOTH_SCAN); On obtient la liste des appareils déjà liés avec getboundeddevices. Set<BluetoothDevice> knowndevices = bluetoothadapter.getboundeddevices(); for (BluetoothDevice device : knowndevices) { Log.v("BluetoothActivity", "appareil = " + devices.getname()); Set : interface de collection pour des objets qui n'autorisent pas des doublons dans l'ensemble, existe au moins un nul (un tableau d'objets). for-each : boucle qui accède à chaque élément d'une collection d'objets comme dans un tableau (eg, ArrayList). Applications Java sous Android IvMad, Android : Bluetooth (7) Le code complet (étudiez les instructions 'Set' et 'for') : public class BluetoothDeviceListActivity extends Activity { private final static int BLUETOOTH_SCAN = 1; String s = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); BluetoothAdapter bluetoothadapter = BluetoothAdapter.getDefaultAdapter(); startactivityforresult(new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE),BLUETOOTH_SCAN); Set<BluetoothDevice> knowndevices = bluetoothadapter.getbondeddevices(); for (BluetoothDevice device : knowndevices) { s += "appareil = " + device.getname(); Toast.makeText(BluetoothDeviceListActivity.this,"Les Bluetooth liés: "+s,toast.length_short).show();

29 Applications Java sous Android IvMad, Android : Bluetooth (8) La recherche d'appareils inconnus est un traitement asynchrone et gourmant en énergie effectué par le Broadcast Receiver. Android permet de créer une classe qui implémente BroadcastReceiver pour recevoir des Intents et appliquer des comportements spécifiques au code. L interface BroadcastReceiver possède une seule méthode onreceive() qu'on doit implémenter. BroadcastReceiver bluetoothreceiver = new BroadcastReceiver() { public void onreceive(context context, Intent intent) { String action = intent.getaction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = intent.getparcelableextra(bluetoothdevice.extra_device); Toast.makeText(BluetoothActivity.this, "New Device = " + device.getname(), Toast.LENGTH_SHORT).show(); ; Applications Java sous Android IvMad, Android : BT (9) Mettre tout ensemble Ajouter les permissions dans le fichier manifest.xml Applications Java sous Android IvMad, Android : Le rôle des Sockets Connexion à une machine distante Envoie et/ou Réception de données Fermeture d'une connexion Attachement à un port Acceptation d'une demande de connexion à un port local A un port est attribué un numéro allant de 1 à Les ports de 1 à 1023 sont réservés aux services: FTP (21), HTTP (80), SMTP (25) Attente de demandes de connexion Applications Java sous Android IvMad, Android : Le mode connecté (TCP) Les étapes côté Serveur: Instancier la classe ServerSocket et l instruire à écouter sur un port supérieur à Accepter les connexions par la méthode accept() et créer un objet Socket pour référencer la nouvelle connexion. Passer la nouvelle connexion au programme approprié. Fermer la connexion par la méthode close(). Les étapes côté Client: Se connecter au service approprié en instanciant la classe Socket et en lui passant comme paramètres l adresse du Serveur et le port écouté. Lorsque l échange est terminé fermer la connexion par la méthode close().

30 Applications Java sous Android IvMad, Android : Le mode connecté (TCP) Le Client et le Serveur en mode connecté Applications Java sous Android IvMad, Android : StrictMode pour TCP Dans une application Android, on doit éviter d'effectuer des opérations lentes sur le thread de l'interface utilisateur (GUI). Les opérations lecture et écriture de fichiers et l'accès au réseau sont considérées comme lentes, car le temps d'aboutir est indéfini, voir imprévisible. StrictMode est configuré pour une sécurité accrue, c.à.d. pour éviter de faire des choses incorrectes. L'exception NetworkOnMainThreadException est provoqué si l'accès réseau est effectué de l'interface utilisateur (le thread principal de l'application). A partir de l'android 3.0 on peut désactiver cette option pour faire des tests plus facilement sur l'accès réseau en plaçant dans la méthode oncreate() le code: StrictMode.ThreadPolicy policy = new StrictMode. ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Applications Java sous Android IvMad, Android : Connexion TCP Résoudre l'adresse IP locale Applications Java sous Android IvMad, Android : Connexion TCP Le serveur TCP reçoit le message du client TCP Android

31 Applications Java sous Android IvMad, Android : client-side TCP socket Le client TCP envoie un message au serveur TCP par l'interface graphique Android Applications Java sous Android IvMad, Android : client-side TCP socket Le fichier AndroidManifest.xml contient la description des ressources et les autorisations d'accès au réseau Internet L'autorisation d'accéder au réseau et configurée dans le Manifest de l'application <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="ivmad.tcp.client" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="15" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".clienttcpandroidactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> Applications Java sous Android IvMad, Android : server-side TCP socket Le serveur TCP reçoit le message du client Android Le client TCP basé Android envoie un message au Serveur basé TCP Le serveur TCP est installé sur le port 1234 à l'adresse IP: Applications Java sous Android IvMad, Android : Connexion réseau Avant de procéder à une connexion réseau, il faut s'assurer que cette connexion est disponible. Un téléphone portable, un Smartphone ou une tablette peut être hors réseau ou connexion Wifi désactivée. Cette disponibilité est testée avec les méthodes getactivenetworkinfo() et isconnected(). La classe ConnectivityManager détecte les connexions Wifi, GPRS, UMTS, etc. public boolean isnetworkavailable() { ConnectivityManager cm = (ConnectivityManager) getsystemservice(context.connectivity_service); NetworkInfo networkinfo = cm.getactivenetworkinfo(); // Si le réseau est indisponible networkinfo = null et la // méthode retourne false, sinon true. if (networkinfo!= null && networkinfo.isconnected()) { return true; return false;

32 Applications Java sous Android IvMad, Android : Connexion HTTP HttpURLConnection avec URL sont des classes disponibles depuis Java 2.0 standard. C'est un client léger d'usage général basé HTTP et approprié pour la plupart des applications Android. try { URL url = new URL(" HttpURLConnection con = (HttpURLConnection)url.openConnection(); // méthode qui lit un contenu sur le Stream d'entrée readstream(con.getinputstream()); catch (Exception e) { e.printstacktrace(); Applications Java sous Android IvMad, Android : Connexion HTTP Lecture du Stream d'entrée dont la connexion est effectuée par HttpURLConnection et URL. private void readstream(inputstream in) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(in)); String line = "", str = ""; while ((line = reader.readline())!= null) { str += line; Toast.makeText(getApplicationContext(),str,Toast.LENGTH_LONG).show(); catch (IOException e) { e.printstacktrace(); finally { if (reader!= null) { reader.close(); Applications Java sous Android IvMad, Android : Connexion HTTP Le contenu de l'adresse: Applications Java sous Android IvMad, Android : LogCat view Le développement pose toujours le problème de tester l'application avant sa mise en "service". La View de l'application est en mode graphique. Les logs permettent l'affichage en mode texte dans la fenêtre du LogCat. Pour afficher les opérateurs 'log' dans Eclipse il faut activer le LogCat view: Window->Show View->Other...->LogCat. Pour écrire un opérateur 'Log' il faut importer la classe android.util.log qui propose les méthodes: Log.i() "Info", Log.d() "Debug", Log.w() "Warning", Log.e() "Error". Exemple: Log.i("NameActivity", "Bonjour, ça marche!");

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android Applications Java sous Android IvMad, 2011-2014 2 APPLICATIONS JAVA Android Partie I 1. Android Développement d'activités Java sous Android L'objectif principal de ce cours est de découvrir la programmation

Plus en détail

TP SIN Programmation sur androïde Support : eclipse

TP SIN Programmation sur androïde Support : eclipse TP SIN Programmation sur androïde Support : eclipse Support : Smartphone sur androïde Pré requis (l élève doit savoir): Savoir utiliser un ordinateur Savoir utiliser un Smartphone Programme Objectif terminale

Plus en détail

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer Programmation des applications mobiles avec Android 1 Inspiré du cours de Olivier Le Goaer 2 OS mobile : outils de développement D après le cours de Olivier Le Goaer 3 Plateforme de développement MobileApp

Plus en détail

Tutorial pour une application simple

Tutorial pour une application simple ANDROID & ECLIPSE Tutorial pour une application simple 1. Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr Outils, langage et approche Android Une introduction Nicolas Stouls nicolas.stouls@insa lyon.fr Webographie La bible contenant «tout» : http://developer.android.com/index.html Les supports cette intervention

Plus en détail

Warren PAULUS. Android SDK et Android x86

Warren PAULUS. Android SDK et Android x86 Android SDK et Android x86 2010/2011 Voici un petit tutoriel pour installer Android de façon à ce qu il soit compatible avec NetBeans et Eclipse, ainsi que l utilisation d Android x86. Ce tutoriel a été

Plus en détail

Android 4 Les fondamentaux du développement d'applications Java

Android 4 Les fondamentaux du développement d'applications Java La plateforme Android 1. Présentation 13 2. Historique 14 3. Google Play 15 3.1 Création d'un compte développeur 16 3.2 Publication d'une application 16 3.3 Suivi et mise à jour d'une application 18 Environnement

Plus en détail

TP au menu «UI ANDROID»

TP au menu «UI ANDROID» TP au menu «UI ANDROID» Pré-requis & Installation ( du couvert) soit installer en natif sur vos postes (!!! ATTENTION!!! FromScratch 1,1 Go à télécharger ) JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

Plus en détail

TD/TP 1 Introduction au SDK d Android

TD/TP 1 Introduction au SDK d Android TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

1.3 Gestion d'une application

1.3 Gestion d'une application 1.3 Gestion d'une application 1. Un premier projet... Il est temps maintenant d'écrire la véritable première application Android avec l'inévitable affichage du mot bonjour, ce qui évidemment pour un développement

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

De Java à Android version 0.1

De Java à Android version 0.1 De Java à Android version 0.1 David Roche De Java à Andoid 1 Ce document est publié sous licence Creative Commons Vous êtes libres : de reproduire, distribuer et communiquer cette création au public de

Plus en détail

Les fondamentaux du développement d applications Java

Les fondamentaux du développement d applications Java Android 5 Les fondamentaux du développement d applications Java Nazim BENBOURAHLA Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr Saisissez

Plus en détail

www.elektor.fr/android SOMMAIRE

www.elektor.fr/android SOMMAIRE www.elektor.fr/android Android Apprendre à programmer des applis Environnement de développement Eclipse Programmation orientée objet en JAVA Auteur : Stephan Schwark Éditeur : Elektor ISBN : 978-2-86661-187-3

Plus en détail

TP2 : Client d une BDD SqlServer

TP2 : Client d une BDD SqlServer TP2 : Client d une BDD SqlServer Objectifs : utiliser la barre de menu, utiliser les préférences d application (settings) ou (options), gérer la persistance des données, utiliser la bibliothèque jtds:jdbc

Plus en détail

Projet Android (LI260) Cours 2

Projet Android (LI260) Cours 2 Projet Android (LI260) Cours 2 Nicolas Baskiotis Université Pierre et Marie Curie (UPMC) Laboratoire d Informatique de Paris 6 (LIP6) S2-2013/2014 Plan Les ressources Debug Communication entre activités

Plus en détail

Education Delivery Intelligent Tool

Education Delivery Intelligent Tool Education Delivery Intelligent Tool Projet AMO2 Maxence RAOUX Joachim SEGALA RICM 4 Avril 2012 Sommaire I. Presentation du projet... 2 1. Contexte... 2 2. Demande... 2 3. Spécifications... 2 II. Guide

Plus en détail

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1 Les connexions sans fil avec Android JMF (Tous droits réservés) 1 Plan de l'exposé Wi-Fi : un rappel Démo 1 : trouver les réseaux Wi-Fi Démo 2 : repérer les appareils connectés sur notre réseau Wi-Fi Démo

Plus en détail

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction jean-michel Douin, douin au cnam point fr version : 8 Décembre 2014 Notes de cours 1 Sommaire Le socle, les fondements Le patron

Plus en détail

Table des matières. Partie I Concepts de base... 1. Préface... VII

Table des matières. Partie I Concepts de base... 1. Préface... VII Table des matières Préface... VII Partie I Concepts de base... 1 1. Tour d horizon... 3 Avantages et inconvénients de la programmation des smartphones... 3 Contenu d un programme Android... 4 Fonctionnalités

Plus en détail

Créer des applications Android

Créer des applications Android Créer des applications Android Auteurs : Philippe Lacomme, Raksmey Phan Les outils nécessaires sont : - Android SDK - Eclipse - Le plugin ADT de Eclipse Plan (ceci n est pas un cours) Outils: Préparation

Plus en détail

Android en action. Abdelkader Lahmadi Université de Lorraine - 2013

Android en action. Abdelkader Lahmadi Université de Lorraine - 2013 Android en action Abdelkader Lahmadi Université de Lorraine - 2013 Plan La boîte à outils JDK SDK Android Eclipse Plugin Android pour Eclipse Architecture et composants La main à la pâte Hello Android

Plus en détail

Développement sous Android

Développement sous Android Développement sous Android Chapitres traités Les fournisseurs de contenu (Content Provider) Pour cette dernière étude de l'environnement Android, nous allons en profiter pour découvrir plein de fonctionnalités

Plus en détail

Programmation mobile avec Android

Programmation mobile avec Android Programmation mobile avec Android Pierre Nerzic - pierre.nerzic@univ-rennes1.fr février-mars 2015 Abstract Il s agit des transparents du cours mis sous une forme plus facilement imprimable et lisible.

Plus en détail

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents) Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents) Les prestations et les applications présentées : Apportent un accès et une mise à jour simplifiés aux documents

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Introduction ANDROID

Introduction ANDROID Introduction ANDROID 1 Un monde ouvert Première plateforme ouverte pour appareils mobiles.les applications natives et tierces utilisent les mêmes API. Un système d exploitation open source libre pour appareils

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers - TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers vendredi 22 février 2013 Installation : Pour programmer des applications Android, il faut tout d abord veiller à disposer

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Edutab. gestion centralisée de tablettes Android

Edutab. gestion centralisée de tablettes Android Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,

Plus en détail

Table des matières Introduction... 1 1. Démarrage... 8 2. Les composants graphiques... 26

Table des matières Introduction... 1 1. Démarrage... 8 2. Les composants graphiques... 26 Table des matières À propos de l'auteur... x Préface... xi Avant-propos... xiv 1. Public visé et prérequis... xiv 2. Sources des exemples... xv 3. Accès aux vidéos... xv 4. URL raccourcies... xv 5. Remerciements...

Plus en détail

Développement sous Android

Développement sous Android Développement sous Android Chapitres traités Architecture générale d'android Android est une plateforme ouverte pour le développement de mobiles (smartphones). C'est la première plateforme pour appareils

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations Projet Viticulture TP 3 : bases de données externes Description du thème Partie 1 : bases de données locales SQLite Partie 2 : projet H2O stockage local Partie 3 : bases de données distantes Partie 4 :

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Android et le Cloud Computing

Android et le Cloud Computing Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un

Plus en détail

Programmation Android L3 informatique

Programmation Android L3 informatique Programmation Android L3 informatique Étienne Payet Département de mathématiques et d informatique Ces transparents sont mis à disposition selon les termes de la Licence Creative Commons Paternité - Pas

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Développement d applications professionnelles avec Android 2

Développement d applications professionnelles avec Android 2 Développement d applications professionnelles avec Android 2 Reto Meier Traduit par Dalil Djidel, avec la contribution technique d Arnaud Farine Pearson Education France a apporté le plus grand soin à

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Encore plus de widgets et de conteneurs

Encore plus de widgets et de conteneurs 14 Encore plus de widgets et de conteneurs Nous avons déjà présenté un certain nombre de widgets et de conteneurs, et ce chapitre sera le dernier qui leur sera exclusivement consacré : il présente plusieurs

Plus en détail

Android UIThread, Thread, Handler et AsyncTask

Android UIThread, Thread, Handler et AsyncTask Android UIThread, Thread, Handler et AsyncTask jean-michel Douin, douin au cnam point fr version : 21 septembre 2012 Notes de cours 1 Bibliographie utilisée http://developer.android.com/resources/index.html

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Développement Android. J.-F. Couchot

Développement Android. J.-F. Couchot Développement Android J.-F. Couchot 12 novembre 2012 Table des matières 1 Introduction à l OS embarqué Android 3 I Composants principaux d une application................................ 3 I.1 Une activité............................................

Plus en détail

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Table des matières Atelier pratique 8 : Implémentation de la réplication 1 Exercice 1 : Création d'une publication 1 Exercice

Plus en détail

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents

Plus en détail

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013 Département IRIS Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013 Objectifs : Mise en œuvre d'une chaine de développement pour cibles Android. Table des matières 2.1.Mise

Plus en détail

Terminaux Mobiles Communicants

Terminaux Mobiles Communicants Terminaux Mobiles Communicants Programmation Android P-F. Bonnefoi Version du 4 avril 2011 Table des matières 1 Open Handset Alliance.............................................. 5 2 Android : matériel

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique Mémoire de fin d études pour l obtention du diplôme de Licence en Informatique

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Tutoriel Android. Pour démarrer la programmation d'applications Android

Tutoriel Android. Pour démarrer la programmation d'applications Android Tutoriel Android Pour démarrer la programmation d'applications Android Remarque préalable Comme il est impossible de traiter tous les aspects d'android, seulement quelques uns seront présentés. De plus

Plus en détail

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku Android Présentation d Android 20 novembre 2010 Florent Garin http://www.docdoku.com http://twitter.com/docdoku Florent Garin Co-fondateur de DocDoku Société innovante IT http://www.docdoku.com Co-fondateur

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt benjamin.damecourt@me.com. UFR SITEC Master 2 EESC 11 janvier 2012

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt benjamin.damecourt@me.com. UFR SITEC Master 2 EESC 11 janvier 2012 Dossier Développer en Java sur téléphone mobile Benjamin Damécourt benjamin.damecourt@me.com UFR SITEC Master 2 EESC 11 janvier 2012 Table des matières Introduction 2 Pré-requis 3 Hello World! 5 Installation

Plus en détail

Chapitre 1 Retour en arrière

Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 1 Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 2 1. Difficultés de développer pour les systèmes embarqués Quelques contraintes à prendre en compte : - Mémoire:

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant. Chapitre 7 Le mode de communication en connexion est, a priori, supporté par le protocole TCP. Ce protocole fournit une communication fiable; les données sont transmises comme chaînes d octets. Avant de

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

LES TABLETTES : GÉNÉRALITÉS

LES TABLETTES : GÉNÉRALITÉS LES TABLETTES : GÉNÉRALITÉS Fonctionnement Qu est-ce qu une tablette tactile? Une tablette tactile est un appareil doté d'un écran qui permet d'interagir simplement en touchant l'écran ou à l'aide d'un

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

DÉVELOPPEMENT ANDROID

DÉVELOPPEMENT ANDROID DÉVELOPPEMENT ANDROID ESIEE / Key Consulting Partie 2 v2.2-2012 INTENT Key Consulting INTENT Intent : intention Une Intent est une agrégation d informations, décrivant de manière abstraite une action devant

Plus en détail

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM Utilisation de GCM (Google Cloud Messaging) pour Android Ce TP est inspiré de : http://android.amolgupta.in/2012/07/google-cloud-messaging-gcm-tutorial.html On va écrire deux parties. Une application Android

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

ETI/Domo. Français. www.bpt.it. ETI-Domo Config 24810150 FR 10-07-144

ETI/Domo. Français. www.bpt.it. ETI-Domo Config 24810150 FR 10-07-144 ETI/Domo 24810150 www.bpt.it FR Français ETI-Domo Config 24810150 FR 10-07-144 Configuration du PC Avant de procéder à la configuration de tout le système, il est nécessaire de configurer le PC de manière

Plus en détail

Application de messagerie simple sur Android : Rapport de projet de VAP RSM

Application de messagerie simple sur Android : Rapport de projet de VAP RSM Application de messagerie simple sur Android : Rapport de projet de VAP RSM Projet encadré par : M. Hossam AFFIFI Elaboré par : Khaoula MRABET & Nessrine TRABELSI Responsable de la VAP : M. Patrice AUBRY

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles Programmation Android De la conception au déploiement avec le SDK Google Android 2 Damien Guignard Julien Chable Emmanuel Robles Avec la contribution de Nicolas Sorel et Vanessa Conchodon Groupe Eyrolles,

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13 Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie

Plus en détail

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90. Analyste et développeur pendant plus de 10 ans, Thierry GROUSSARD s est ensuite orienté vers la formation et plus particulièrement dans le domaine du développement. Sa connaissance approfondie des besoins

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Licence 3 CDA 2010/2011 Client FTP Java Maxence Jaouan Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Windows?...

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDEV MOBILE ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDOWS Mobile permet de créer des applications pour les smartphones, les tablettes et les terminaux mobiles. Les applications sont

Plus en détail