Développement sur Android

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

Download "Développement sur Android"

Transcription

1 Développement sur Android V. Barichard LERIA - Département Informatique Université d Angers M2 - SILI M2 - SILI Développement sur Android 1

2 Rappels Chapitre I Rappels M2 - SILI Développement sur Android 2

3 Rappels Android Généralités Android est un système d exploitation Open Source basé sur un noyau Linux Il fonctionne sur smartphone, tablette, télévision, voiture, Initialement développé par une startup du même nom, rachetée par Google en 2005 Android offre un framework riche mais suffisamment rigide et étanche (XML, activités, services, ) Android permet d accéder aux fonctionnalités avancées de l appareil (stockage, réseau, multimédia, GPS, téléphonie) Le SDK d Android : Les applications Android sont écrites en Java Le code Java est compilé pour pouvoir s exécuter sur la machine virtuelle Dalvik/ART embarquée sur Android L application est empaquetée dans un fichier APK (Android PacKage) puis installée sur l appareil M2 - SILI Développement sur Android 3

4 Rappels Android SDK La base AndroidManifest.xml déclare les activités, services ainsi que la façon dont l application s intègre au système Séparer la description de l interface de son comportement Les principaux widgets héritent de la classe View : TextView, Button, ImageView, ImageButton, EditText, CheckBox, RadioButton Les widgets sont accessibles depuis le code Java Comme dans la plupart des bibliothèques graphiques, un «layout manager» place les widgets Pour donner les indications de placement, des «conteneurs» sont utilisés LinearLayout, RelativeLayout, TableLayout, ScrollView M2 - SILI Développement sur Android 4

5 Rappels Android SDK T.A.D. Android permet de lier directement certains widgets à un type abstrait de données adapté Ce sont les adapteurs Exemple : Le widget d Android pour les listes est le ListView ArrayAdapter permet de lier un tableau de données à un widget liste ListActivity est préconisé quand l activité se réduit à une liste M2 - SILI Développement sur Android 5

6 Rappels Rappel sur le procédé d inflation Extension au cas des menus Rappel : l interface graphique d une vue peut se créer dynamiquement grâce à l inflation d une ressource XML Interface d une activité, d une ligne d une liste, etc. Ceci s applique également aux menus : menu/main.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android=" <item android:id="@+id/menu_ouvrir" android:title="ouvrir" /> </menu> M2 - SILI Développement sur Android 6

7 Rappels Instanciation d un menu par inflation Le code Java doit être adapté et charger l interface du menu grâce à un Inflater Le callback onoptionsitemselected se sert de l id de l élément spécifié dans la ressource XML pour identifier l action sélectionnée dans le menu Code public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case R.id.menu_ouvrir:... return(true); return(super.onoptionsitemselected(item)); M2 - SILI Développement sur Android 7

8 Rappels Android SDK Cycle de vie Sur un PC l OS 1 peut tuer des processus Jamais utilisé en pratique Sur un smartphone, les ressources et notamment la mémoire sont plus limitées Des activités peuvent être tuées pour permettre à d autres de s exécuter Certaines doivent mourir pour que d autres vivent Sur Android il ne faut pas supposer que l application ira jusqu à son terme! 1. Operating System M2 - SILI Développement sur Android 8

9 Rappels Android SDK Cycle de vie Une activité est toujours dans l un des quatre états suivants : Active : elle s execute au premier plan En pause : l activité est visible mais inacessible (une notification ou un message apparaît devant) Stoppée : elle est cachée par une autre activité Morte : elle n a pas été lancée ou a été tuée Android fournit des méthodes appelées lors de la transition d un état à un autre Lors d un changement d orientation, Android supprime et recrée toutes les activités Il est possible d adapter les activités pour bien réagir face à la rotation La philosophie d Android demande au développeur de découper son application en activités autonomes M2 - SILI Développement sur Android 9

10 Rappels Android SDK Cycle de vie oncreate() : instanciation des objets et tâches invisibles onstart() : lancement des tâches visibles à l écran onresume() : abonnements, rétablissement contexte onpause() : désabonnements, enregistrement contexte OnStop() : arrêt des tâches et destruction des objets visibles ondestroy() : défaire les actions de oncreate M2 - SILI Développement sur Android 10

11 Gradle Chapitre II Gradle M2 - SILI Développement sur Android 11

12 Gradle Passage à Gradle Un nouveau système pour la construction des paquets Au début, le système de construction utilisé dans Android était ant ant est le système de gestion de compilation utilisé par Java Depuis JellyBean un nouveau système à été introduit : Gradle Il tend maintenant à devenir le système de constuction/compilation principal d Android Il est utilisé par AndroidStudio et intégré à l outil en ligne de commande M2 - SILI Développement sur Android 12

13 Gradle Présentation de Gradle Un moteur de production (à la cmake, ant, ) Gradle fonctionne à base de tâches décrivant le processus de construction Les tâches sont décrite dans un fichier de construction en Groovy 2 Lorsqu il utilise un démon en tâche de fond, les compilations suivantes sont plus rapides Il est souvent utilisé à travers un wrapper (un script) effectuant des vérifications supplémentaires./gradlew --help : pour obtenir l aide./gradlew tasks : donne la liste des tâches connues./gradlew installdebug : compile et installe le projet sur un device Android 2. Language objet similaire à Java M2 - SILI Développement sur Android 13

14 Gradle Présentation de Gradle Un moteur de production (à la cmake, ant, ) Gradle fonctionne à base de tâches décrivant le processus de construction Les tâches sont décrite dans un fichier de construction en Groovy 2 Lorsqu il utilise un démon en tâche de fond, les compilations suivantes sont plus rapides Il est souvent utilisé à travers un wrapper (un script) effectuant des vérifications supplémentaires./gradlew --help : pour obtenir l aide./gradlew tasks : donne la liste des tâches connues./gradlew installdebug : compile et installe le projet sur un device Android 2. Language objet similaire à Java M2 - SILI Développement sur Android 13

15 Gradle Android et Gradle Le greffon Android Gradle utilise des greffons pour l ajout d extensions Java, dépôt Maven, Android, tests unitaires Ces greffons créent la structure du projet, les tâches, Le greffon Android gère les spécificités d Android La structure d un projet a été remaniée Structure du projet pour le greffon Android build.gradle gradlew gradle/ src/main/ AndroidManifest.xml assets/ java/ --> (Sources) res/ --> (Ressources) src/androidtest/... M2 - SILI Développement sur Android 14

16 Gradle Android et Gradle Le greffon Android Gradle utilise des greffons pour l ajout d extensions Java, dépôt Maven, Android, tests unitaires Ces greffons créent la structure du projet, les tâches, Le greffon Android gère les spécificités d Android La structure d un projet a été remaniée Structure du projet pour le greffon Android build.gradle gradlew gradle/ src/main/ AndroidManifest.xml assets/ java/ --> (Sources) res/ --> (Ressources) src/androidtest/... M2 - SILI Développement sur Android 14

17 Gradle Android et Gradle Création et compilation d un projet Création du projet android create project -g --gradle-version \ --path MonProjet \ --target android-21 \ --name MonProjet \ --activity MonActivite \ --package com.univangers.m2sili Pour créer un projet Android pour Gradle il faut indiquer la version du greffon Android à utuliser (ici, 1.3.0) Un bug dans la version actuelle du SDK nécessite d appeler la commande fixgradle dans le répertoire principal du projet juste après sa création Pour compiler et installer le projet, se positionner dans le répertoire racine du projet et taper :./gradlew installdebug M2 - SILI Développement sur Android 15

18 Les fragments Chapitre III Les fragments 1 Cycle de vie 2 Création d un fragment 3 Construire une interface multi-appareils avec des fragments 4 Fragment sans interface M2 - SILI Développement sur Android 16

19 Les fragments Présentation des fragments Introduction Introduits dans Android 3.0, les fragments permettent à l interface utilisateur d être plus flexible et dynamique En divisant une activité en fragments, l apparence de l application sera modifiée dynamiquement en fonction de l appareil Exemple : un lecteur de news M2 - SILI Développement sur Android 17

20 Les fragments Présentation des fragments Simple-panneau et multi-panneaux Sur l exemple précédent, l activité utilise deux fragments Sur tablette, les deux fragments sont montrés côte à côte Sur petits appareils, les fragments sont montrés successivement La première activité intègre le fragment de la liste des articles La deuxième activité intègre le fragment pour lire un article Sélectionner un article dans le premier fragment lance la deuxième activité La deuxième activité n est jamais utilisée sur tablette Créer des interfaces avec des fragments permet d avoir : Une interface simple-panneau sur petits appareils Multi-fragments, multiples activités Une interface multi-panneaux sur tablettes Multi-fragments, activité unique M2 - SILI Développement sur Android 18

21 Les fragments Présentation des fragments Qu est-ce qu un fragment? Un fragment est un composant indépendant et réutilisable mis dans une activité Un fragment possède sa propre interface utilisateur Il est possible de définir des fragments sans interface (tâches de fond) Plusieurs fragments peuvent cohabiter au sein d une activité Il s exécute dans une activité mais possède son propre cycle de vie Il est tout de même dépendant du cycle de vie de l activité Les fragments s ajoutent et se retirent de la pile de retours Ils peuvent être manipulés de manière statique et dynamique M2 - SILI Développement sur Android 19

22 Les fragments Pour créer un fragment, il faut créer une sous-classe de Fragment Le code ressemble à celui d une activité Il possède les fonctions nécessaires à la gestion de son cycle de vie Il y a des callbacks à redéfinir Il est facile de convertir une activité en fragment Comme pour les activités, la nouvelle classe doit hériter au choix de : Fragment : pour la création d un fragment classique DialogFragment : pour la création d une boîte de dialogue flottante ListFragment : pour gérer une liste en lien avec un Adapter PreferenceFragment : pour gérer les paramètres d une application M2 - SILI Développement sur Android 20

23 Les fragments Plan Cycle de vie 1 Cycle de vie 2 Création d un fragment 3 Construire une interface multi-appareils avec des fragments 4 Fragment sans interface M2 - SILI Développement sur Android 21

24 Les fragments Cycle de vie Cycle de vie propre onattach() : référence sur activité en cours oncreate() : instanciation objets non graphiques oncreateview() : inflation onactivitycreated() : référence sur activité, exécution des initialisations requérant l activité, restauration du contexte onstart() : lancement des tâches onresume() : abonnements, rétablissement contexte onpause() : désabonnements, enregistrement contexte OnStop() : arrêt des tâches, destruction des objets ondestroyview() : libération mémoire des composants graphiques ondestroy() et ondetach() : rien M2 - SILI Développement sur Android 22

25 Les fragments Lien avec l activité propriétaire Cycle de vie Le cycle de vie des fragments est lié à celui de l activité propriétaire Un fragment peut terminer son cycle de vie bien que l activité soit encore active Si une activité s arrête, ses fragments s arrêtent Comme pour les activités, les callbacks doivent rappeler les fonctions correspondantes de la super classe Il n est pas possible d obtenir le contexte depuis le fragment, il faut passer par l activité M2 - SILI Développement sur Android 23

26 Les fragments Plan Création d un fragment 1 Cycle de vie 2 Création d un fragment 3 Construire une interface multi-appareils avec des fragments 4 Fragment sans interface M2 - SILI Développement sur Android 24

27 Les fragments Création d un fragment Interface du fragment Le layout L interface graphique d un fragment est décrite dans une ressource xml Elle se déclare comme les activités simples vues antérieurement liste_details.xml <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent"> <TextView android:id="@+id/titre" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/titre" /> <ListView android:id="@+id/listelements" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> M2 - SILI Développement sur Android 25

28 Les fragments Création d un fragment Interface du fragment Redéfinition de OnCreateView Il est nécessaire d avoir une classe héritant de Fragment La seule méthode à redéfinir obligatoirement est public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { View view = inflater.inflate(r.layout.liste_details, container, false); //Instanciation des composants graphiques (findviewbyid...) return view; Remarque : le dernier argument de l appel à inflate est false Ainsi, le système rattache la vue à l activité M2 - SILI Développement sur Android 26

29 Les fragments Activité intégrant le fragment Layout d un fragment statique Création d un fragment Un fragment statique peut être intégré dans une application en le déclarant dans le layout de l activité La balise xml à utiliser est fragment. Elle doit notamment spécifier : android:name spécifie la classe implémentant le fragment android:id identifiant unique pour accéder au fragment depuis le code Java fragment_layout.xml <FrameLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment class="com.univangers.info.exemple.fragmenttitres" android:id="@+id/fragment_titres" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> M2 - SILI Développement sur Android 27

30 Les fragments Activité intégrant le fragment Redéfinition de oncreate Création d un fragment La méthode oncreate de l activité s implémente comme d public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_layout); FragmentTitres mainfragment=(fragmenttitres)findviewbyid(r.id.fragments_titres); Le fragment peut être récupéré (grâce à findviewbyid) et manipulé dynamiquement M2 - SILI Développement sur Android 28

31 Les fragments Création d un fragment Positionnement des fragments La répartition de l espace entre fragments se fait comme les autres widgets Répartition 1 3 et 2 3 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.univangers.info.fragmenta" android:id="@+id/list" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent" /> <fragment android:name="com.univangers.info.fragmentb" android:id="@+id/viewer" android:layout_weight="2" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> M2 - SILI Développement sur Android 29

32 Les fragments Fragments dynamiques Ajout d un fragment Création d un fragment Les fragments peuvent être créés et manipulés dynamiquement avec le FragmentManager Un fragment peut être rattaché à un conteneur existant (par exemple un FrameLayout) : Le paramètre ViewGroup identifie le conteneur à utiliser L id unique de ce conteneur peut servir à retrouver le Fragment ultérieurement Les opérations sur les fragments sont regroupées dans des transactions Ajout d un fragment private static final String TAG_MON_FRAGMENT = "TAG_MON_FRAGMENT_1"; FragmentManager fragmentmanager = getfragmentmanager() FragmentTransaction fragmenttransaction = fragmentmanager.begintransaction(); ExampleFragment exfragment = new ExampleFragment(); fragmenttransaction.add(exfragment, TAG_MON_FRAGMENT); fragmenttransaction.commit(); M2 - SILI Développement sur Android 30

33 Les fragments Fragments dynamiques Rappel d un fragment Création d un fragment Il est possible de rappeler un fragment précédemment créé en utilisant son «TAG» Rappel d un fragment private static final String TAG_MON_FRAGMENT = "TAG_MON_FRAGMENT_1"; FragmentManager fm = getfragmentmanager(); ExampleFragment exfragment = (ExampleFragment) fm.findfragmentbytag(tag_mon_fragment); if (exfragment == null) { exfragment = new ExampleFragment(); fm.begintransaction().add(exfragment, TAG_TASKS_FRAGMENT).commit(); Il est aussi possible d utiliser des «id» qui sont obligatoirement uniques M2 - SILI Développement sur Android 31

34 Les fragments Fragments dynamiques Rappel d un fragment Création d un fragment Il est possible de rappeler un fragment précédemment créé en utilisant son «TAG» Rappel d un fragment private static final String TAG_MON_FRAGMENT = "TAG_MON_FRAGMENT_1"; FragmentManager fm = getfragmentmanager(); ExampleFragment exfragment = (ExampleFragment) fm.findfragmentbytag(tag_mon_fragment); if (exfragment == null) { exfragment = new ExampleFragment(); fm.begintransaction().add(exfragment, TAG_TASKS_FRAGMENT).commit(); Il est aussi possible d utiliser des «id» qui sont obligatoirement uniques M2 - SILI Développement sur Android 31

35 Les fragments Création d un fragment Fragments dynamiques La BackStack La backstack est gérée par l activité Il est possible de la modifier Lorsque l utilisateur presse la touche de retour, les transactions de la BackStack sont dépilées Remplacement d un fragment // Création d'un nouveau fragment Fragment newfragment =... instanciation d'un nouveau fragment... // Ajout du fragment à l'activité, ajout sur la backstack FragmentTransaction ft = getfragmentmanager().begintransaction(); ft.replace(r.id.simple_fragment, newfragment); ft.settransition(fragmenttransaction.transit_fragment_open); ft.addtobackstack(null); ft.commit(); addtobackstack permet de revenir à l ancien état en pressant la touche de retour M2 - SILI Développement sur Android 32

36 Les fragments Plan Construire une interface multi-appareils avec des fragments 1 Cycle de vie 2 Création d un fragment 3 Construire une interface multi-appareils avec des fragments 4 Fragment sans interface M2 - SILI Développement sur Android 33

37 Les fragments Construire une interface multi-appareils avec des fragments Utiliser l aptitude du système à appliquer différents layouts Android peut utiliser une ressource.xml différente en fonction de la taille de l écran Tablettes : res/layout-large/main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/frags" > <!-- "Fragment A" --> <fragment class="com.example.android.fragmenttitres" android:id="@+id/list_frag" android:layout_width="@dimen/titles_size" android:layout_height="match_parent" /> <!-- "Fragment B" --> <fragment class="com.example.android.fragmentdetails" android:id="@+id/details_frag" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> M2 - SILI Développement sur Android 34

38 Les fragments Construire une interface multi-appareils avec des fragments Utiliser l aptitude du système à appliquer différents layouts Petits appareils : res/layout/main.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- "Fragment A" --> <fragment class="com.example.android.fragmenttitres" android:id="@+id/list_frag" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> Si le fragment B est dans le layout l activité A notifie le fragment B Sinon, l activité A démarre l activité B contenant le fragment B M2 - SILI Développement sur Android 35

39 Les fragments Implémentation de la transition Construire une interface multi-appareils avec des fragments Code Java public class MainActivity extends Activity implements FragmentTitres.OnItemSelectedListener {... public void onitemselected(int position) { DisplayFragment detailsfrag = (DisplayFragment) getfragmentmanager().findfragmentbyid(r.id.details_frag); if (detailsfrag == null) { // FragmentDetails (Fragment B) n'est pas dans le layout (petit appareil), // démarrage de l'activité d'affichage (Activity B) // avec les options nécessaires au bon positionnement Intent intent = new Intent(this, DisplayActivity.class); intent.putextra("position", position); startactivity(intent); else { // FragmentsDetails (Fragment B) est dans le layout (tablette), // on demande juste au fragment de se mettre à jour details_frag.updatecontent(position); Quand l activité B démarre, elle lit les données stockées dans Intent pour positionner le fragment B M2 - SILI Développement sur Android 36

40 Les fragments Synthèse Construire une interface multi-appareils avec des fragments Dans les versions récentes du SDK, Android permet de spécifier des ressources différentes (dans des répertoires différents), fonction de la qualité et la précision de l écran Pour que cette interface responsive fonctionne, il est important de : Ne pas accéder à un fragment depuis un autre De laisser tout le code de gestion du fragment dans le fragment et non dans l activité Il faut définir des interfaces et des callbacks dans les fragments pour communiquer avec l activité et délivrer les messages M2 - SILI Développement sur Android 37

41 Les fragments Plan Fragment sans interface 1 Cycle de vie 2 Création d un fragment 3 Construire une interface multi-appareils avec des fragments 4 Fragment sans interface M2 - SILI Développement sur Android 38

42 Les fragments Sauvegarde/Restauration d un fragment Avant, avec les activités Fragment sans interface Android détruit souvent des activités (rotation, ) Il faut sauvegarder et restaurer le contexte Les widgets pourvus d id voient leur contenu sauvegardé et restauré Avec les activités il faut redéfinir deux méthodes : onsaveinstancestate qui permet de stocker dans un Bundle les champs primitifs ou parcelables onrestoreinstancestate qui permet de récupérer depuis un Bundle les champs primitifs ou parcelables M2 - SILI Développement sur Android 39

43 Les fragments Sauvegarde/Restauration d un fragment Avec les fragments Fragment sans interface La méthode onrestoreinstancestate n existe plus dans les fragments, il faut passer par les méthodes du cycle de vie : oncreate(bundle) oncreateview(layoutinflater,viewgroup,bundle) onactivitycreated(bundle) public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); if (savedinstancestate!= null) { // Restauration des données du contexte utilisateur mcurcheckposition = savedinstancestate.getint("curchoice", 0); public void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); // Sauvegarde des données du contexte utilisateur outstate.putint("curchoice", mcurcheckposition); M2 - SILI Développement sur Android 40

44 Les fragments Fragment sans interface Quid des objets non primitifs, non parcelables? Les objets non primitifs ou non parcelables ne peuvent-être sauvegardés dans un Bundle Stuctures de données avancées, threads, Avant HoneyComb il existait la méthode onretainconfigurationinstance dans la classe Activity Depuis HoneyComb il faut utiliser des fragments sans interface utilisateur auxquels il est demandé de ne pas «mourir» Les données à sauvegarder sont stockées comme attributs du Fragment Un fragment sans interface s ajoute obligatoirement dynamiquement (sans conteneur) Pour qu un fragment ne soit pas détruit, il suffit d appeler sa méthode setretaininstance(true) M2 - SILI Développement sur Android 41

45 Les fragments Fragment sans interface Utilisation de setretaininstance Lors de l utilisation de setretaininstance(true), le cycle de vie change : ondestroy() n est pas appelée, mais ondetach() l est toujours oncreate(bundle) ne sera pas appelée (le fragment n est pas recréé) oncreateview( ), ondestroyview() ne seront pas appelées onattach(activity) et onactivitycreated(bundle) sont toujours appelées Ne jamais appeler setretaininstance(true) sur un fragment normal car la backstate sera corrompue Attention! Lorsque setretaininstance(true) est appelée, le Bundle savedinstancestate est null M2 - SILI Développement sur Android 42

46 Les tâches en arrière plan Chapitre IV Les tâches en arrière plan M2 - SILI Développement sur Android 43

47 Les tâches en arrière plan La solution : les «threads» Pour être agréable, une application doit être fluide et réactive Les tâches longues ne peuvent pas être mises en avant Android permet d utiliser des threads pour traiter des tâches en arrière plan Dans la majorité des bibliothèques graphiques, la gestion de l interaction et des rappels est réalisée par des files d attentes de messages Cela permet d avoir un thread dedié à l affichage indépendant du reste Pour que l application reste réactive, il faut que : Les opérations longues soient placées dans des threads Le thread principal (avec les rappels) soit le plus efficace possible M2 - SILI Développement sur Android 44

48 Les tâches en arrière plan La solution : les «threads» Application à Android Android ne déroge pas à la règle et gère des files de messages Si le thread principal nécessite trop de temps processeur : L affichage n est plus rafraîchi L application est considérée comme plantée (un message apparaît) Certaines activités doivent absolument être placées dans des threads : Les accès à Internet (téléchargement, envoi de données) Les opérations sur les fichiers (mémoire lente) Les traitements complexes et coûteux Android utilise la classe thread 3 de Java Il n est pas possible de modifier l interface depuis un thread! 3. paquet java.util.concurrent M2 - SILI Développement sur Android 45

49 Les tâches en arrière plan Faire patienter l utilisateur Il faut toujours informer l utilisateur sur la progression des tâches longues Le widget ProgressBar affiche une barre de progression Un entier naturel correspond au niveau de progression Il est possible d interagir avec depuis le code Java : setmax() fixe la valeur maximale de barre setprogress() et incrementprogressby() modifie la valeur de progression getprogress() retourne le niveau actuel de la barre <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <ProgressBar android:id="@+id/progress" style="?android:attr/progressbarstylehorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> M2 - SILI Développement sur Android 46

50 Les tâches en arrière plan Exécuter une tâche de fond en informant l interface Un exemple de plusieurs façons M2 - SILI Développement sur Android 47

51 Les tâches en arrière plan Exécuter une tâche de fond en informant l interface Un exemple de plusieurs façons M2 - SILI Développement sur Android 47

52 Les tâches en arrière plan Exécuter une tâche de fond en informant l interface Un exemple de plusieurs façons M2 - SILI Développement sur Android 47

53 Les tâches en arrière plan Les handlers et les threads La méthode manuelle La classe Thread lance le thread en tâche de fond Les instances de la classe Handler font communiquer interface et thread Le handler gère une file d évènements thread safe La communication s effectue par envois de messages : sendmessage(), sendmessageatfrontofqueue(), sendmessagedelayed(), Redéfinition de la méthode handlemessage() du handler Utilisation d un bundle pour le passage des données à handlemessage() M2 - SILI Développement sur Android 48

54 Les tâches en arrière plan Les handlers et les threads Exemple public class Debut extends Activity { ProgressBar bar; AtomicBoolean isrunning = new AtomicBoolean(false); Handler handler = new Handler() public void handlemessage(message msg) { bar.incrementprogressby(msg.getdata().getint("valeur")); public void oncreate(bundle state) { super.oncreate(state); setcontentview(r.layout.main); bar=(progressbar)findviewbyid(r.id.progress); public void onstart() {... public void onstop() {... M2 - SILI Développement sur Android 49

55 Les tâches en arrière plan Les handlers et les threads Exemple (suite)... public void onstart() { super.onstart(); bar.setprogress(0); Thread background = new Thread(new Runnable() { public void run() { try { for (int i=0; i<20 && isrunning.get(); i++) { Thread.sleep(1000); Message msg = handler.obtainmessage(); Bundle bdl = new Bundle(); bdl.putint("valeur",5); msg.setdata(bdl); handler.sendmessage(msg); catch (Throwable t) { ); isrunning.set(true); background.start(); public void onstop() { super.onstop(); isrunning.set(false); M2 - SILI Développement sur Android 50

56 Les tâches en arrière plan Les tâches asynchrones : la classe AsyncTask La méthode assistée par Android Depuis Android 1.5, AsyncTask a été introduit pour faciliter la gestion des tâches de fond C est Android qui se charge d exécuter le thread Le développeur n a plus qu à répartir son code dans les méthodes prévues AsyncTask<Params, Progress, Result> est une classe Template prenant trois paramètres : Params : type de la donnée passée au lancement de la tâche Progress : type de la donnée utilisée pour communiquer la progression Result : type de la donnée passée à la tâche lorsque celle-ci a terminée M2 - SILI Développement sur Android 51

57 Les tâches en arrière plan Implémenter une tâche de fond avec AsyncTask Il faut tout d abord créer une classe héritant de AsyncTask Il faut ensuite redéfinir certaines méthodes : onpreexecute : est appelée avant le début de la tâche, elle est exécutée dans le thread principal doinbackground (nécessaire) : Elle reçoit en paramètre un tableau de données et est exécutée dans un thread en arrière plan onprogressupdate : est appelée lors de l appel à publishprogress(), elle est exécutée dans le thread principal onpostexecute : est appelée quand la tâche est terminée, elle est exécutée dans le thread principal oncancelled : est appelée si AsyncTask().cancel() est appelée, terminant l exécution de la tâche Pour démarrer une AsyncTask, il faut appeler la méthode execute() de l instance M2 - SILI Développement sur Android 52

58 Les tâches en arrière plan Implémenter une tâche de fond avec AsyncTask Exemple public class Debut extends Activity { private ProgressBar public void oncreate(bundle state) { super.oncreate(state); setcontentview(r.layout.main); bar=(progressbar)findviewbyid(r.id.progress); new BackgroundTask().execute(); class BackgroundTask extends AsyncTask<Void, Integer, Void> protected Void doinbackground(void... unused) { for (int i=0; i<20; i++) { publishprogress(5); SystemClock.sleep(1000); return protected void onprogressupdate(integer... step) { bar.incrementprogressby(step[0]); ; ; M2 - SILI Développement sur Android 53

59 Les tâches en arrière plan Les threads et la rotation Lors d une rotation, les threads ne sont plus connectés à l interface Les mises à jour sont envoyées à l ancien thread principal qui n existe plus Pour s en convaincre, il suffit de rajouter la méthode protected void onpreexecute() { Toast.makeText(Debut.this,"Thread lancé!", Toast.LENGTH_LONG).show(); Un message est affiché à chaque rotation d écran Pour résoudre ce problème, il faut attacher manuellement l activité à la tâche de fond (via un fragment) M2 - SILI Développement sur Android 54

60 Les tâches en arrière plan Les threads et la rotation Pour que le thread puisse s exécuter en tâche de fond sans interruption, il faut : Ne pas le rattacher à l activité mais Le rattacher à un fragment «persistant» private TaskCallBacks mmainactivitylistener = public void onattach(activity mainactivity) { super.onattach(mainactivity); this.mmainactivitylistener = (TaskCallBacks) public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); public void ondetach() { super.ondetach(); this.mmainactivitylistener = null; Il faudra donc définir trois classes héritant respectivement de : Activiy, Fragment et AsyncTask Une interface de «CallBack» est nécessaire pour que la tâche de fond puisse envoyer des données/informations à l activité M2 - SILI Développement sur Android 55

61 Les tâches en arrière plan Les threads et la rotation Exemple : L activité public class TP extends Activity implements TasksFragment.TaskCallBacks { private static final String TAG_TASKS_FRAGMENT = "tp_task_fragment"; private TasksFragment mtasksfragment; // // LIFE CYCLE MEMBER FUNCTIONS // public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); FragmentManager fm = getfragmentmanager(); mtasksfragment = (TasksFragment) fm.findfragmentbytag(tag_tasks_fragment); if (mtasksfragment == null) { mtasksfragment = new TasksFragment(); fm.begintransaction().add(mtasksfragment, public void onitemupdate(titem item) public void onitemdone(titem item) { M2 - SILI Développement sur Android 56

62 Les tâches en arrière plan Les threads et la rotation Exemple : le fragment public class TasksFragment extends Fragment { static interface TaskCallBacks { public void onitemupdate(titem item); public void onitemdone(titem item); private TaskCallBacks mmainactivitylistener = public void onattach(activity mainactivity) { super.onattach(mainactivity); this.mmainactivitylistener = (TaskCallBacks) public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); public void ondetach() { super.ondetach(); this.mmainactivitylistener = null; protected void onprogressupdate(titem item) { if (mmainactivitylistener!= null) mmainactivitylistener.onitemupdate(item); protected void onpostexecute(titem item) { if (mmainactivitylistener!= null) mmainactivitylistener.onitemdone(item); // BACKGROUND TASK M2 - SILI Développement sur Android 57

63 Les tâches en arrière plan Les threads et la rotation Exemple : la tâche // // BACKGROUND TASK // class BackgroundTask extends AsyncTask<TItem, TItem, TItem> { protected TasksFragment tasksfragment = null; BackgroundTask(TasksFragment tasksfragment) { this.tasksfragment = protected URLItem doinbackground(titem... _item) protected void onprogressupdate(titem... item) { super.onprogressupdate(item); protected void onpostexecute(titem item) { super.onpostexecute(item); tasksfragment.onpostexecute(item); M2 - SILI Développement sur Android 58

64 Les tâches en arrière plan Les threads : synthèse Le traitement de certaines tâches en tâche de fond est incontournable en Android Plusieurs façons de faire : La classe Thread de Java (implémentation d objets runnable et de handlers) Étendre la classe AsyncTask (suffisant dans la majorité des cas) Un fragment persistant sans interface permet de ne pas perdre la tâche de fond pendant une destruction de l activité (rotations, passage à l arrière plan,...) Il est souvent nécessaire de créer des interfaces de callbacks pour rappeler les méthodes de l activité M2 - SILI Développement sur Android 59

65 Les notifications Chapitre V Les notifications M2 - SILI Développement sur Android 60

66 Les notifications Utilités d une notification Une notification est un message à l attention de l utilisateur affiché en dehors de l application Elle est utilisée pour deux types d actions : Afficher un message à l intention de l utilisateur Empêcher une activité d être tuée (lecteur audio, ) Une notification peut-être persistante ou éphémère Une notification peut se résumer à une simple icône Une notification peut être développée par l utilisateur pour permettre une interaction (simple) M2 - SILI Développement sur Android 61

67 Les notifications Créer une notification Android utilise un objet Notification.Builder pour créer la notification : Obligatoire : titre, texte détaillé, icône Autres paramètres sont optionnels Création de la notification Notification notification = new Notification.Builder(getActivity()).setContentTitle("Titre de la notification").setcontenttext("text de la notificationé).setsmallicon(r.drawable.nom_image).setautocancel(true).build(); Une notification peut se supprimer en appelant setautocancel lors du clique Une notification peut permettre de lancer une activité : Clique ou avec boutons supplémentaires M2 - SILI Développement sur Android 62

68 Les notifications Créer une notification Android utilise un objet Notification.Builder pour créer la notification : Obligatoire : titre, texte détaillé, icône Autres paramètres sont optionnels Création de la notification Notification notification = new Notification.Builder(getActivity()).setContentTitle("Titre de la notification").setcontenttext("text de la notificationé).setsmallicon(r.drawable.nom_image).setautocancel(true).build(); Une notification peut se supprimer en appelant setautocancel lors du clique Une notification peut permettre de lancer une activité : Clique ou avec boutons supplémentaires M2 - SILI Développement sur Android 62

69 Les notifications Créer une notification Android utilise un objet Notification.Builder pour créer la notification : Obligatoire : titre, texte détaillé, icône Autres paramètres sont optionnels Création de la notification Notification notification = new Notification.Builder(getActivity()).setContentTitle("Titre de la notification").setcontenttext("text de la notificationé).setsmallicon(r.drawable.nom_image).setautocancel(true).build(); Une notification peut se supprimer en appelant setautocancel lors du clique Une notification peut permettre de lancer une activité : Clique ou avec boutons supplémentaires M2 - SILI Développement sur Android 62

70 Les notifications Gérer les notifications La première action à réaliser est d afficher la notification : Déclenchement de la notification NotificationManager notificationmanager = (NotificationManager) getactivity().getsystemservice(activity.notification_service); notificationmanager.notify(0, notification); Le premier argument correspond à l id de la notification Une autre notification affichée avec le même id mettra à jour la notification existante Il est possible de la retirer depuis une activité grâce à son id en appelant la méthode cancel M2 - SILI Développement sur Android 63

71 Les notifications Ajouter une réaction à une notification Il est possible de définir une action lors du clique sur la notification Pour cela il faut créer un Intent qui démarrera une activité La notification définit une action à partir d un PendingIntent qui prend comme argument un Intent qui démarre une activité Création d un Intent Intent resultintent = new Intent(this, ResultActivity.class);... PendingIntent resultpendingintent = PendingIntent.getActivity(this, 0, resultintent, PendingIntent.FLAG_UPDATE_CURRENT); Cet Intent est ensuite ajouté à la notification Ajout de l intent PendingIntent resultpendingintent; notification.setcontentintent(resultpendingintent); M2 - SILI Développement sur Android 64

72 Les notifications Ajouter une réaction à une notification Il est possible de définir une action lors du clique sur la notification Pour cela il faut créer un Intent qui démarrera une activité La notification définit une action à partir d un PendingIntent qui prend comme argument un Intent qui démarre une activité Création d un Intent Intent resultintent = new Intent(this, ResultActivity.class);... PendingIntent resultpendingintent = PendingIntent.getActivity(this, 0, resultintent, PendingIntent.FLAG_UPDATE_CURRENT); Cet Intent est ensuite ajouté à la notification Ajout de l intent PendingIntent resultpendingintent; notification.setcontentintent(resultpendingintent); M2 - SILI Développement sur Android 64

73 Interaction avec les évènements systèmes : le Bluetooth Chapitre VI Interaction avec les évènements systèmes : le Bluetooth 1 Les «broadcast receiver» 2 Application à la gestion du Bluetooth M2 - SILI Développement sur Android 65

74 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» Plan 1 Les «broadcast receiver» 2 Application à la gestion du Bluetooth M2 - SILI Développement sur Android 66

75 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» À l écoute du système les «broadcast receiver» Un broadcast receiver est un composant Android permettant de se mettre en attente d évènements systèmes Un receiver (récepteur) se déclare soit dans le AndroidManifest.xml soit dynamiquement La classe principale à connaître est : BroadcastReceiver Android peut recycler un récepteur une fois sa méthode onreceive terminée Il existe un grand nombre de broadcast receivers répondant aux évènements systèmes : Intent.ACTION_BOOT_COMPLETED, Intent.ACTION_BATTERY_LOW, M2 - SILI Développement sur Android 67

76 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» Implémenter un receiver Exemple d un receiver statique Exemple d implémentation (pris dans un tutorial) Fichier MyPhoneReceiver.java public class MyPhoneReceiver extends BroadcastReceiver public void onreceive(context context, Intent intent) { Bundle extras = intent.getextras(); if (extras!= null) { String state = extras.getstring(telephonymanager.extra_state); Log.w("MY_DEBUG_TAG", state); if (state.equals(telephonymanager.extra_state_ringing)) { String phonenumber = extras.getstring(telephonymanager.extra_incoming_number); Log.w("MY_DEBUG_TAG", phonenumber); M2 - SILI Développement sur Android 68

77 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» Implémenter un receiver Exemple d un receiver statique (suite) Il suffit ensuite de l enregistrer au niveau de l application décrite dans AndroidManifest.xml Ajout dans AndroidManifest.xml <receiverandroid:name="myphonereceiver" > <intent-filter> <action android:name="android.intent.action.phone_state" > </action> </intent-filter> </receiver> M2 - SILI Développement sur Android 69

78 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» Envoyer ses propres évènements («custom») Il est possible de créer un intent puis de l envoyer comme message broadcast Ajout dans AndroidManifest.xml Intent intent = new Intent(); intent.setaction("com.univangers.m2.testbroadcast"); sendbroadcast(intent); Le message sortira de l application et toute application enregistrée à ce récepteur sera avertie Il est possible d associer des paramètres/valeurs en les spécifiant dans l Intent M2 - SILI Développement sur Android 70

79 Interaction avec les évènements systèmes : le Bluetooth Les «broadcast receiver» Répondre à des évènements «custom» Cela se fait simplement en les enregistrants dynamiquement depuis le code ou statiquement dans l AndroidManifest.xml Ajout dans AndroidManifest.xml <receiverandroid:name="myreceiver" > <intent-filter> <actionandroid:name="com.univangers.m2.testbroadcast" /> </intent-filter> </receiver> Dans le cas d évènements locaux à l application, il est préférable d utiliser un LocalBroadcastManager plus rapide et plus sûr M2 - SILI Développement sur Android 71

80 Interaction avec les évènements systèmes : le Bluetooth Plan Application à la gestion du Bluetooth 1 Les «broadcast receiver» 2 Application à la gestion du Bluetooth M2 - SILI Développement sur Android 72

81 Interaction avec les évènements systèmes : le Bluetooth Application à la gestion du Bluetooth Introduction à l API Bluetooth d Android Le Bluetooth est un moyen d envoyer et de recevoir des informations entre deux appareils par ondes Il est peu consommateur d énergie et normalisé Ce protocole normalisé est supporté par de nombreuses plateformes Android fourni une API capable de : Détecter de nouveaux appareils Obtenir la liste des appareils liés Se connecter aux appareils par découverte de service Établir une connexion RFCOMM Transférer des données Gérer plusieurs connexions simultanées M2 - SILI Développement sur Android 73

82 Interaction avec les évènements systèmes : le Bluetooth Application à la gestion du Bluetooth Introduction à l API Bluetooth d Android Le Bluetooth est un moyen d envoyer et de recevoir des informations entre deux appareils par ondes Il est peu consommateur d énergie et normalisé Ce protocole normalisé est supporté par de nombreuses plateformes Android fourni une API capable de : Détecter de nouveaux appareils Obtenir la liste des appareils liés Se connecter aux appareils par découverte de service Établir une connexion RFCOMM Transférer des données Gérer plusieurs connexions simultanées M2 - SILI Développement sur Android 73

83 Interaction avec les évènements systèmes : le Bluetooth Obtenir les permissions Application à la gestion du Bluetooth Pour accéder au Bluetooth il faut ajouter des demandes de permissions dans l AndroidManifest.xml Modification de AndroidManifest.xml <manifest... > <uses-permission android:name="android.permission.bluetooth"/>... </manifest> Si on souhaite également modifier les paramètres ou lancer la découverte d appareils, il faut rajouter la permission android.permission.bluetooth_admin M2 - SILI Développement sur Android 74

84 Interaction avec les évènements systèmes : le Bluetooth Être averti lors de l activation du Bluetooth Création du broadcast receiver Application à la gestion du Bluetooth Points à retenir : Créer une instance de BroadcastReceiver (ou sous-classe) Redéfinir la méthode onreceive Identifier les évènements qui nous intéressent private final BroadcastReceiver mbtbroadcastreceiver = new BroadcastReceiver() { public void onreceive(context context, Intent intent) { String action = intent.getaction(); // When discovery finds a device if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { ; La constante BluetoothAdapter.ACTION_STATE_CHANGED identifie les évènements émis lors de l activation du Bluetooth M2 - SILI Développement sur Android 75

85 Interaction avec les évènements systèmes : le Bluetooth Être averti lors de l activation du Bluetooth Enregistrement dynamique d un BroadcastReceiver Application à la gestion du Bluetooth L enregistrement dynamique d un broadcast receiver se fait au niveau de l activité Il faut récupérer l activité depuis le fragment Un filtre est nécessaire pour filtrer les évènements qui déclencheront notre récepteur L enregistrement doit être fait au minimum dans la méthode onstart Enregistrement d un «broadcast receiver» depuis un public void onstart() { super.onstart(); // Register the BroadcastReceiver IntentFilter filter = new IntentFilter(); filter.addaction(bluetoothadapter.action_state_changed); getactivity().registerreceiver(mbtbroadcastreceiver, filter);... M2 - SILI Développement sur Android 76

86 Interaction avec les évènements systèmes : le Bluetooth Application à la gestion du Bluetooth Être averti lors de l activation du Bluetooth L annulation doit être fait dans la méthode symétrique à celle de l enregistrement, ici onstop Annulation d un «broadcast public void onstop() { super.onstop(); // Unregister broadcast receiver getactivity().unregisterreceiver(mbtbroadcastreceiver);... Il existe un grand nombre d évènements qui peuvent être ajoutés au même receiver (détection d un nouvel appareil, ) Une fois annulé, l application ne réagira plus à l évènement M2 - SILI Développement sur Android 77

87 Interaction avec les évènements systèmes : le Bluetooth Le Bluetooth Application à la gestion du Bluetooth Un objet BluetoothAdapter est nécessaire pour interagir, il correspond au composant de l appareil Il est ensuite possible de récupérer un grand nombre d informations sur le composant État et statistiques du composant Liste des appareils (devices) appairées etc. Il est aussi possible de lancer le scan (discovery) pour chercher de nouveaux appareils Chaque appareil est ensuite représenté par un objet de type BluetoothDevice : Nom, adresse, état (connecté ou non) La liste des informations et actions disponibles dépendent de la classe du périphérique M2 - SILI Développement sur Android 78

88 Interaction avec les évènements systèmes : le Bluetooth Application à la gestion du Bluetooth Utilisation de BluetothAdapter Accès aux BluetoothDevice La méthode getbondeddevices de BluetoothAdapter retourner l ensemble des appareils appairés Il ne reste plus qu à parcourir cet ensemble Parcours des appareils appairés BluetoothAdapter mbluetoothadapter = BluetoothAdapter.getDefaultAdapter(); if (mbluetoothadapter!= null) { Set<BluetoothDevice> paireddevices = mbluetoothadapter.getbondeddevices(); // If there are paired devices if (paireddevices.size() > 0) { // Loop through paired devices for (BluetoothDevice device : paireddevices) { Log.v(TAG,"Paired device: "+device.getname()+" "+ device.getbluetoothclass().getdeviceclass()); M2 - SILI Développement sur Android 79

89 Interaction avec les évènements systèmes : le Bluetooth Application à la gestion du Bluetooth En résumé Le mécanisme des broadcast receivers permet à une activité d être prévenue lors d évènements systèmes L activité doit s inscrire et se désinscrire de ces receivers dans les bonnes méthodes du cycle de vie Interagir avec le Bluetooth se fait facilement avec : Un BluetoothAdapter qui rend compte de l état du composant Bluetooth Un objet BluetoothDevice pour représenter un appareil Bluetooth lié ou non L API Bluetooth est bien plus riche (communication entre deux appareils) et la documentation d Android doit être lue avant tout développement conséquent M2 - SILI Développement sur Android 80

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tutoriel Android - TP de prise en main

Tutoriel Android - TP de prise en main Tutoriel Android - TP de prise en main To cite this version:. Tutoriel Android - TP de prise en main. École d ingénieur. France. 2014, pp.51. HAL Id: cel-01082588 https://hal.archives-ouvertes.fr/cel-01082588v2

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

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

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

Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV

Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV Plan 1ére partie : Introduction Première Activité : layout classe Activity manifeste développement avec un

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

Programmation Mobile Android Master CCI

Programmation Mobile Android Master CCI Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Organisation de l UE Objectifs du cours

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

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

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

Gestion des différentes tailles d écran

Gestion des différentes tailles d écran 25 Gestion des différentes tailles d écran Les écrans des terminaux Android, qui sont apparus sur le marché l année qui a suivi l apparition d Android 1.0, avaient tous la même résolution (HVGA, 320 480

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

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE Développement tablette Android SophiaConf2011 Par Arnaud FARINE Parts de marché Android en 2011 1er OS vendu aux EU fin 2010 24% des smartphones en France (35% ios, 11% Blackberry) 3,6 millions de smartphones

Plus en détail

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

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

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

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

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

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

Manipulation 4 : Application de «Change».

Manipulation 4 : Application de «Change». Manipulation 4 : Application de «Change». Première partie : Cette manipulation a pour but d utiliser un service Web afin d obtenir les taux de change appliqués entre les différentes monnaies référencées

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

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

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

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

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

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

FileMaker Server 14. Guide de démarrage

FileMaker Server 14. Guide de démarrage FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques

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

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0 Manuel de l utilisateur Soft-phone - Client VoIP 3CX Version 6.0 Copyright 2006-2008, 3CX Ltd. http:// E-mail: info@3cx.com Les informations contenues dans ce document sont sujettes à modifications sans

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

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

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

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

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

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

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

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

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

bbc Launch Pad Juillet 2011 Version 10.0

bbc Launch Pad Juillet 2011 Version 10.0 bbc Configuration d Adobe Digital Enterprise Platform Document Services - Launch Pad 10.0 Guide de l administrateur et du développeur Launch Pad Juillet 2011 Version 10.0 Mentions juridiques Pour plus

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

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

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Mes documents Sauvegardés

Mes documents Sauvegardés Mes documents Sauvegardés Guide d installation et Manuel d utilisation du logiciel Edition 13.12 Photos et illustrations : Copyright 2013 NordNet S.A. Tous droits réservés. Toutes les marques commerciales

Plus en détail

Administration du site

Administration du site Administration du site 1 TABLE DES MATIÈRES Administration du site... 1 Accéder à la console d administration... 3 Console d administration... 4 Apparence... 4 Paramètres... 5 Allez sur le site... 5 Edition

Plus en détail

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme 13 14 Manuel d utilisation pour la plateforme Qu est-ce que 1. Qu est-ce

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

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS Master E-Services Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS 2010-2011 SPADI Julien VAN HOEYMISSEN Thomas TABLE DES MATIERES 1. L APPLICATION... 2 1.1 Objectif Principal... 2 1.2 Fonctionnalités

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Développement d'applications pour Android. M. Dalmau IUT de Bayonne Pays Basque

Développement d'applications pour Android. M. Dalmau IUT de Bayonne Pays Basque Développement d'applications pour Android M. Dalmau IUT de Bayonne Pays Basque Positionnement d Android L iphone (Apple) Nokia (Symbian OS) Window Mobile (Microsoft) BlackBerry Palm (WebOS) Google (Android)

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

Plus en détail

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

Plus en détail

domovea Portier tebis

domovea Portier tebis domovea Portier tebis SOMMAIRE SOMMAIRE Page 1. INTRODUCTION... 2 1.1 OBJET DU DOCUMENT... 2 2. VIDEO UNIQUEMENT (SANS SON), BASE SUR CAMERA IP... 3 2.1 ARCHITECTURE... 3 2.2 CONFIGURATION... 4 2.2.1 Creation

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Prise en main rapide

Prise en main rapide Objectif terminal Réaliser un objet communicant Pourquoi? : 20 millards d objets connectés en 2020! Quelques mots sur l outil de développement App Inventor App Inventor pour Android est une application

Plus en détail

Guide Utilisateur Transnet

Guide Utilisateur Transnet Guide Utilisateur Transnet > Sommaire 1 I Introduction 3 2 I Les premiers pas sous Transnet 4 2.1 Configuration informatique nécessaire pour accéder à Transnet 4 2.2 Initialisation de Transnet 4 3 I Téléchargement

Plus en détail

Alfresco Guide Utilisateur

Alfresco Guide Utilisateur Alfresco Guide Utilisateur ATELIER TECHNIQUE DES ESPACES NATURELS - 1 Table des matières Alfresco Guide Utilisateur...1 Accéder à la GED de l'aten...3 Via un client FTP...3 Onglet Général...3 Onglet Avancé...3

Plus en détail

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Contenu Microsoft Windows 8.1

Contenu Microsoft Windows 8.1 Contenu Microsoft Windows 8.1 MODULE 1 AVANT-PROPOS CLAVIER SOURIS TERMINOLOGIE Modifier l apparence de l écran d accueil Modifier l avatar du compte FERMER UNE SESSION WINDOWS Redémarrer l ordinateur

Plus en détail

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net Your Detecting Connection Manuel de l utilisateur support@xchange2.net 4901-0128-5 ii Table des matières Table des matières Installation... 4 Conditions d utilisation de XChange 2...4 Définir vos Préférences

Plus en détail

Android 101. Rémi Forax

Android 101. Rémi Forax Android 101 Rémi Forax OS/smartphone dans le monde Historique Octobre 2003 : conception d'un OS mobile par Android Inc. (co-fondé par Andy Rubin) Août 2005 : rachat d'android Inc par Google Novembre 2007

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

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

Tutorial Terminal Server sous

Tutorial Terminal Server sous Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal

Plus en détail

Guide de l utilisateur Mikogo Version Windows

Guide de l utilisateur Mikogo Version Windows Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste

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

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa [Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY Organisme ou entreprise Validation du document Nom Date Visa Amel LIMAM Organisme ou entreprise Approbation

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Annexe Android Studio

Annexe Android Studio 1 Annexe Android Studio 2 Introduction «Eclipse» était l'outil de développement le plus utilisé pour développer des applications Android jusqu à mai 2013. Cet outil était interfacé avec le plug-in «ADT»

Plus en détail

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages GUIDE D UTILISATION Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages Cher client Toshiba, Merci d avoir choisi la tablette multimédia

Plus en détail