289
Android 5 Présentation de la formation Maîtriser Android 5 et Android 4 alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Android 5 Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels

Alphorm.com Formation Android 5

Embed Size (px)

Citation preview

  • Android 5

    Prsentation de la formation

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Android 5

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Gnralits

    Utiliser lenvironnement

    Raliser une application

    Les interfaces utilisateur

    Stocker les informations

    Grer le multimdia

    XML et HTTP

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Faire des tests

    Montiser lapplication

    Android Wear

  • Prsentation du formateur Fabien Brissonneau

    Email : [email protected]

    Consultant Concepteur et Formateur

    Missions darchitecture, de conception , de ralisation logicielles

    Fondateur de eiXa6

    Actuellement en mission sur un projet de gestion

    Matriser Android 5 et Android 4 alphorm.com

    Actuellement en mission sur un projet de gestion

    Mes rfrences :

    Mon profil Viadeo : http://fr.viadeo.com/fr/profile/fabien.brissonneau

    Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/

  • Mes formations sur alphorm

    Matriser Android 5 et Android 4 alphorm.com

  • Les autres formations dv sur Alphorm

    Matriser Android 5 et Android 4 alphorm.com

  • Quest-ce que Android ? Un systme dexploitation pour mobiles

    Une plateforme multi-constructeurs, multi-diteurs

    Un framework riche, cohrent et efficace

    Une ensemble doutils de dveloppement productifs

    Matriser Android 5 et Android 4 alphorm.com

    Les alternatives sont minoritaires

  • Publics concerns Cette formation sadresse des dveloppeurs

    Connatre Java est ncessaire, ne pas tre drout par sa syntaxe

    Nous ne reviendrons pas sur les concepts du langage

    Matriser Android 5 et Android 4 alphorm.com

  • Prsentation des outils Le SDK Android, framework et outils

    Linterface de dveloppement Android Studio

    La prsentation sera faite sous Windows 8

    Matriser Android 5 et Android 4 alphorm.com

  • Are you ready ?

    Matriser Android 5 et Android 4 alphorm.com

  • Histoire dAndroid

    Gnralits sur Android

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Histoire dAndroid

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les acteurs

    Le systme

    Les outils

    Matriser Android 5 et Android 4 alphorm.com

  • Les acteurs Google

    Open Handset Alliance, http://www.openhandsetalliance.com/

    Matriser Android 5 et Android 4 alphorm.com

    Une mascotte, BugDroid

  • Le systme Premire version commerciale en Septembre 2008

    Chaque version majeure porte un nom depuis Cupcake

    Cupcake,Donut,Eclair,Froyo,Gingerbread,Honeycomb,

    IceCreamSandwich (4.0-4.0.4), JellyBean, KitKat (4.4)

    Matriser Android 5 et Android 4 alphorm.com

    Lollipop (5)

    Les versions correspondent plus ou moins des version de lAPI

    Lollipop correspond lAPI 21

  • Les outils Un site : http://developer.android.com/sdk/index.html

    La mise jour des outils du SDK via SDK Manager

    Les outils du SDK ont des numros de versions

    En dcembre 2014 : 24.0.2

    Matriser Android 5 et Android 4 alphorm.com

    Les outils spcifiques la dernire plateforme sont les platform-tools

  • Ce quon a couvert Les acteurs

    Le systme

    Les outils

    Matriser Android 5 et Android 4 alphorm.com

  • Architecture

    Gnralits sur Android

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Architecture

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les couches du systme

    Lexcution dune application

    Matriser Android 5 et Android 4 alphorm.com

  • Les couches du systme Le framework dapplications

    Le binder (IPC), couche de liaison vers le systme

    Les services systme, organis en composants (systme ou mdia)

    La couche dabstraction du matriel (HAL)

    Matriser Android 5 et Android 4 alphorm.com

    Le noyau Linux et ses pilotes

  • Lexcution dune application Avant la version 5, Dalvik est le nom de la machine virtuelle

    La compilation est dite JIT (Just In Time)

    Lollipop utilise ART (Android RunTime)

    Excution du format Dex (Dalvik Executable)

    Compilation AOT (Ahead Of Time), qui a lieu linstallation

    Matriser Android 5 et Android 4 alphorm.com

    Compilation AOT (Ahead Of Time), qui a lieu linstallation

    Un garbage collector gre la mmoire

  • Ce quon a couvert Les couches du systme

    Lexcution dune application

    Matriser Android 5 et Android 4 alphorm.com

  • Les packages

    Gnralits sur Android

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Les packages

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Larborescence des packages

    Le package android.app

    Les packages android.widget et android.view

    Le package android.utils

    Matriser Android 5 et Android 4 alphorm.com

    Les packages com.google.android.gms.*

  • Larborescence de packages Les packages sous android.app

    Le modle applicatif android, Activity, Service y sont

    Les packages sous android.content

    Les composants ContentProvider et BroadcastReceiver

    Les packages android.widget et android.view

    Matriser Android 5 et Android 4 alphorm.com

    Les packages android.widget et android.view

    Les composants graphiques

    Les packages java.*

    Les classes java utilisables pour Android

  • Le package android.app La classe Activity : composant graphique qui permet les interactions

    avec lutilisateur

    La classe Service : un composant qui ralise des traitements en arrire-plan

    La classe Fragment, qui est une partir rutilisable de lihm

    Matriser Android 5 et Android 4 alphorm.com

  • Les packages android.widget et android.view Les classes Button, CheckBox, DatePicker

    lments graphiques chargs dans lActivit

    Les classes LinearLayout, GridLayout

    Les composants de disposition des contrles dans lactivit

    Les classes Menu, MenuItem

    Matriser Android 5 et Android 4 alphorm.com

    Les classes Menu, MenuItem

    Les composants de menu

  • Le package android.util La classe Log

    Permet de tracer des vnements dans LogCat

    La classe Xml

    Utilitaire de traitement de fichiers Xml

    Matriser Android 5 et Android 4 alphorm.com

  • Les packages com.google.util.gms.* Les classes Google Play Services

    Google+

    Google Maps

    Android Wear

    Matriser Android 5 et Android 4 alphorm.com

    Chaque API a son propre package

  • Ce quon a couvert Larborescence des packages

    Le package android.app

    Les packages android.widget et android.view

    Le package android.utils

    Matriser Android 5 et Android 4 alphorm.com

    Les packages com.google.android.gms.*

  • Android Studio

    Utiliser lenvironnement

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Android Studio

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Installation de lIDE et du JDK

    Les ressources dans un projet

    Les activits et les tests dans un projet

    Les fonctions dAndroid Studio

    Matriser Android 5 et Android 4 alphorm.com

  • Installation de lIDE et du JDK Url : http://developer.android.com/sdk/index.html

    Possible de ne tlcharger que le SDK

    JDK

    Android SDK

    Matriser Android 5 et Android 4 alphorm.com

    Images pour AVD

  • Les ressources dans un projet Les ressources jouent un rle important :

    Description de lihm, codes couleurs, chanes de caractres, images

    Les ressources sont utilises grce un identifiant

    En java, la classe R reprsente ces ressources

    Matriser Android 5 et Android 4 alphorm.com

    Certaines ressources sont non structures : les assets

    Lorganisation des ressources suit des rgles de nommage et dorganisation des rpertoires

  • Les activits et les tests dans un projet Une activit est un concept dinterface utilisateur

    Un simple cran

    Contient une ou plusieurs vues

    Plusieurs activits dans une application

    Matriser Android 5 et Android 4 alphorm.com

    Les fragments sont comme des sous-activits

    Ils sont prvus pour grer les potentiels diffrents selon les tailles dcrans

    Les ressources de layout seront lies aux activits

    Une activit est une classe Java

  • Les fonctions et les tests dAndroid Studio Lditeur de code

    Des modles prts lemploi

    Des applications multi-crans

    Des matriels virtuels divers

    Matriser Android 5 et Android 4 alphorm.com

    Des scripts de construction volus

  • Ce quon a couvert Installation de lIDE et du JDK

    Les ressources dans un projet

    Les activits et les tests dans un projet

    Les fonctions dAndroid Studio

    Matriser Android 5 et Android 4 alphorm.com

  • Compilation, excution et

    Utiliser lenvironnement

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Compilation, excution et dbogage

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan La compilation du projet

    Lexcution de lapplication

    Le dbogage de lapplication

    Matriser Android 5 et Android 4 alphorm.com

  • La compilation du projet Un projet sous Android Studio est compos de plusieurs modules

    Chaque module donne lieu un fichier zip dextension .apk

    Ce fichier contient :

    Le code excutable par la VM (Dalvik ou ART)

    Matriser Android 5 et Android 4 alphorm.com

    Les ressources compiles

    Un manifest dcrivant lapplication

    La signature dans un certificat (la cl prive est conserve par le dveloppeur)

  • Lexcution de lapplication Se ralise sur mulateur

    Choix dun AVD, ou cration dun nouveau

    Ou bien sur un appareil physique

    Installation des pilotes USB

    Paramtres dveloppeur activ

    Matriser Android 5 et Android 4 alphorm.com

    Paramtres dveloppeur activ

  • Le dbogage de lapplication Le certificat est gnr automatiquement par Android Studio

    Le dbogage peut se faire sur matriel virtuel ou rel

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert La compilation du projet

    Lexcution de lapplication

    Le dbogage de lapplication

    Matriser Android 5 et Android 4 alphorm.com

  • Le dploiement

    Utiliser lenvironnement

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le dploiement

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les modes de livraison

    La gestion des versions

    Les signatures

    Matriser Android 5 et Android 4 alphorm.com

  • Les modes de livraison Diffrents canaux :

    Par un marketplace (Google Play), voir les rgles spcifiques

    Par mail

    Via un site web

    Paramtrage de linstallation partir de sources inconnues

    Matriser Android 5 et Android 4 alphorm.com

    Paramtrage de linstallation partir de sources inconnues

    Prparation minimum :

    Mode release

    Signer

    Tester et vrifier lapplication et toutes les ressources externes

  • La gestion des versions A noter limportance des numros de versions dans ce systme ou

    plusieurs applications vont collaborer

    Dans le manifest :

    La version : versionCode (pour les applications) , versionName (pour les utilisateurs)

    Matriser Android 5 et Android 4 alphorm.com

    Prrequis sur le SDK : minSdkVersion, targetSdkVersion, maxSdkVersion

  • Les signatures Les applications sont toutes signes avant quelles puissent tre

    installes

    Les certificats sont auto-signs, ils servent identifier lauteur

    En mode debug, le certificat est gnr par le Android SDK

    Mot de passe bien connu, pas besoin de le fournir

    Matriser Android 5 et Android 4 alphorm.com

    Mot de passe bien connu, pas besoin de le fournir

    En mode release, il faut disposer dun magasin de cls prives, dune cl prive identifiant lauteur, modifier le fichier de build

    Toutes les versions dune application doivent avoir la mme cl

  • Ce quon a couvert Les modes de livraison

    La gestion des versions

    Les signatures

    Matriser Android 5 et Android 4 alphorm.com

  • Les outils

    Utiliser lenvironnement

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Les outils

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Utiliser Android Studio

    Les outils en ligne de commande

    Les principaux outils

    Matriser Android 5 et Android 4 alphorm.com

  • Utiliser Android Studio Laide la construction de lihm

    Un suivi des images correspondant aux variables

    Fentre de sortie filtrable

    Positionnement automatique des parents dactivits

    Matriser Android 5 et Android 4 alphorm.com

    Cration facilite des ihms

    Edition simple et complte du code : quick fix, navigation facile, rgion de code, aide rapidement accessible,

  • Les outils en ligne de commande Les outils du SDK : AVD Manager, Android Emulator, mksdcard

    Les outils de dveloppement : android, hierachyviewer, lint, sdkmanager, sqlite3

    Les outils de debug : adb, uiautomator, ddms, device monitor, monkey, systrace

    Matriser Android 5 et Android 4 alphorm.com

    Les outils de construction

    Les outils dimages

    Remarque sur les outils lis la plateforme

  • Les principaux outils Android Asset Packaging Tool (aapt) : compile les ressources et produit

    R.java

    Les ventuelles interfaces aidl

    Matriser Android 5 et Android 4 alphorm.com

  • Les principaux outils Les fichiers .class sont traduits en .dex

    Matriser Android 5 et Android 4 alphorm.com

  • Les principaux outils La signature suit

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Utiliser Android Studio

    Les outils en ligne de commande

    Les principaux outils

    Matriser Android 5 et Android 4 alphorm.com

  • Un simple programme

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Un simple programme

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le primtre de lapplication

    Larchitecture de lapplication

    La construction de lihm principale

    Les menus

    Matriser Android 5 et Android 4 alphorm.com

  • Le primtre de lapplication Exemple dapplication qui permet de garder trace de ses dplacements

    Saisir un trajet : saisie manuelle, rcupration de la localisation, notification wear, stockage

    Rcuprer les trajets et kilomtres par mois ou par an : imprimante, mail, stockage,

    Paramtrage : localisation, stockage, cloud, imprimante

    Matriser Android 5 et Android 4 alphorm.com

    Paramtrage : localisation, stockage, cloud, imprimante

  • Architecture de lapplication Vues de haut niveau entre lesquelles on peut naviguer

    Les vues par catgories pour entrer dans le dtail

    Les vues de dtail

    Dans un premier temps, saisie dun trajet : 1 seule vue de haut niveau

    Matriser Android 5 et Android 4 alphorm.com

  • Construction de lihm principale La notion de view : les contrles visuels

    La notion de viewgroup : tous les layouts

    Il est possible de crer lihm dans le code, ou bien dans XML

    Avec lditeur graphique, ou bien en ditant le code XML directement

    Matriser Android 5 et Android 4 alphorm.com

    Ensemble complet de contrles : Textes, Boutons, Images, Dates

    Contrles complexes : Liste, Grille, Spinner et Gallerie

    Travaille avec des adaptateurs

  • Cas particulier des AdapterView Sparation de laccs aux donnes de leur reprsentation

    Un contrle de liste (ListView, Spinner,) contient des items dont le type doit tre dcrit par un layout

    Il est li par un adaptateur des donnes (tableau, )

    Un adaptateur convertit une donne en une vue enfant de la liste

    Matriser Android 5 et Android 4 alphorm.com

    Un adaptateur convertit une donne en une vue enfant de la liste

    SimpleCursorAdapter

    Lorsque le ListView doit reprsenter une ligne, il fait appel ladaptateur en passant la ligne

    Ladaptateur va alors construire la vue enfant en utilisant le layout rfrenc

  • Utiliser un menu Le menu peut tre dcrit dans le fichier XML

    Il est cr avec lactivit

    Matriser Android 5 et Android 4 alphorm.com

    On peut ragir sur les items

  • Ce quon a couvert Le primtre de lapplication

    Larchitecture de lapplication

    La construction de lihm principale

    Les menus

    Matriser Android 5 et Android 4 alphorm.com

  • Sauvegarder les donnes

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Sauvegarder les donnes

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Stockage dans les prfrences

    Stockage interne

    Stockage externe

    Les bases de donnes SQLite

    Matriser Android 5 et Android 4 alphorm.com

    La connexion au rseau

  • Le stockage dans les prfrences Stockage de paires cl-valeur

    Utiliser la classe android.content.SharedPreferences

    getSharedPreferences() ou getPreferences()

    Stockage de toute variable primitive

    Matriser Android 5 et Android 4 alphorm.com

    Persistence des donnes entre sessions

    Ecriture : edit() fournit un Editor

    Appeler putXXX(v), puis commit()

    Lecture : utiliser getXXX()

  • Stockage interne Sauvegarder un fichier priv pour lapplication

    Le fichier est enlev lorsque dutilisateur dsinstalle lapplication

    Pour ouvrir le fichier

    La mthode openFileOutput(fichier,mode) de android.content.Context

    La mthode openFileInput(fichier)

    Matriser Android 5 et Android 4 alphorm.com

    La mthode openFileInput(fichier)

    Utiliser ensuite FileOutputStream/FileInputStream

    Mme technique pour les fichiers de cache, avec getCacheDir()

    Autres mthodes : getFilesDir(), getDir(), deleteFile(), fileList()

  • Stockage externe Peut tre une carte SD ou bien interne

    Accessibles librement et modifiable par lutilisateur

    Soumis permission READ/WRITE_EXTERNAL_STORAGE

    Vrifier que le stockage externe existe

    Matriser Android 5 et Android 4 alphorm.com

    getExternalStorageState()

    Fichiers publics :

    Environment.getExternalStoragePublicDirectory()

    Fichiers app-private :

    getExternalFilesDir()

  • Les bases de donnes SQLite Base accessible de lapplication elle-mme

    Crer une sous-classe de SQLiteOpenHelper et redfinir onCreate()

    Crer les tables ncessaires

    Lecture et criture par getReadableDatabase() et getWritableDatabase()

    Matriser Android 5 et Android 4 alphorm.com

    Les requtes sont excutes avec la mthode SQLiteDatabase.query()

    Et les rsultats sont parcourus avec un Cursor

    Pour dboguer, penser loutil sqlite3

  • La connexion au rseau Il est possible de se connecter au rseau sil est disponible

    Ce serait une forme de stockage des donnes

    Les packages java.net.* et android.net.*

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Stockage dans les prfrences

    Stockage interne

    Stockage externe

    Les bases de donnes SQLite

    Matriser Android 5 et Android 4 alphorm.com

    La connexion au rseau

  • Le cycle de vie

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le cycle de vie

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Vue densemble du cycle de vie

    La pause et la reprise

    Larrt et le redmarrage

    La re-cration de lactivit

    Matriser Android 5 et Android 4 alphorm.com

  • Vue densemble du cycle de vie Les fonctions appeles lors du changement dtat :

    onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()

    onRestart()

    Toutes les fonctions ( de rappel ou callback ) nont pas tre implmentes

    Matriser Android 5 et Android 4 alphorm.com

    implmentes

    Les tats stables dans la vie de lactivit sont :

    Resumed : en avant-plan et lutilisateur interagit avec

    Paused : semi-visible, lutilisateur ne peut plus interagir

    Stopped : cache, aucune excution de code

  • Application et activit Lactivit principale de lapplication est dfinie dans le manifest

    Cette activit reoit le onCreate() lors du lancement

    Matriser Android 5 et Android 4 alphorm.com

  • La redfinition de onCreate() Peut servir construire une ihm diffrente selon la version du SDK

    Initialise lihm

    Matriser Android 5 et Android 4 alphorm.com

    Le pendant est onDestroy(), rarement utilise

  • La pause et la reprise La mthode onPause() est appele lorsque lactivit devient

    partiellement invisible

    Arrter les actions qui consomment (animations)

    Sauvegarder les informations persistantes

    Librer les ressources consommatrices (senseurs )

    Matriser Android 5 et Android 4 alphorm.com

    Librer les ressources consommatrices (senseurs )

    Le pendant : onResume()

    Initialiser les senseurs

    Reprendre les animations

  • Larrt et le redmarrage Les cas dusage de stop/restart :

    Lutilisateur passe une autre application par les applications rcentes , stoppe lappli puis repasse par le mme chemin

    Lapplication dmarre une autre activit, puis back

    Rception dun appel tlphonique

    Matriser Android 5 et Android 4 alphorm.com

    Rception dun appel tlphonique

    Mthode onStop()

    Librer toutes les ressources

    et onRestart()

    Rarement utile

  • La re-cration de lactivit Lorsque lactivit est dtruite car inutilise depuis un certain temps

    Il sagit pour le systme dconomiser des ressources

    Le systme peut alors reconstruire lactivit dans ltat o elle tait lors de sa destruction

    Pairs cls-valeurs dtat -> bundle

    Matriser Android 5 et Android 4 alphorm.com

    Pairs cls-valeurs dtat -> bundle

    La re-cration de lihm est prise en charge par le systme

    Pour sauver/restaurer des donnes supplmentaires :

    onSaveInstanceState / onRestoreInstanceState

  • Ce quon a couvert Vue densemble du cycle de vie

    La pause et la reprise

    Larrt et le redmarrage

    La re-cration de lactivit

    Matriser Android 5 et Android 4 alphorm.com

  • Lactionbar

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Lactionbar

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Gnralits sur la barre action

    Mettre des boutons dans la barre

    Modifier le style de la barre

    Matriser Android 5 et Android 4 alphorm.com

  • Gnralits sur la barre dactions La barre daction sert

    didentit visuelle,

    de repre de navigation,

    dclencher les actions importantes,

    naviguer dans lapplication

    Matriser Android 5 et Android 4 alphorm.com

    naviguer dans lapplication

    Selon la version dAndroid, la mise en uvre peut tre diffrente

    Nous ne supportons ici que Android aprs 3.0 (API 11)

  • Mettre des boutons dans la barre Les boutons doivent correspondre aux actions les plus importantes

    Si une icne est montre, on parle de action button

    Pour ajouter licne, ne pas oublier

    Matriser Android 5 et Android 4 alphorm.com

    Projet//res/drawable/-> ajouter Image Asset

  • Remarque sur les icnes Tlchargement dicnes toutes prtes

    Sur developer.android.com/design/downloads/index.html

    Matriser Android 5 et Android 4 alphorm.com

  • Visualise et ragir Pour visualiser le menu

    Matriser Android 5 et Android 4 alphorm.com

    Et ragir sur les boutons

  • La navigation entre les activits Les activits peuvent tre relies par parent

    Ici, lactivit SendMailActivity est fille de MainActivityMileage

    Matriser Android 5 et Android 4 alphorm.com

    Et ne pas oublier

  • Modifier le style de la barre Il y a deux thmes par dfaut : Theme.Holo et Theme.Holo.Light

    Choisir le style dans AndroidManifest.Xml

    Ou bien dans un fichier de style : styles.xml

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Gnralits sur la barre action

    Mettre des boutons dans la barre

    Modifier le style de la barre

    Matriser Android 5 et Android 4 alphorm.com

  • Le support des matriels

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le support des matriels

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le support des langages

    Le support des crans

    Le support des versions de plateformes

    Matriser Android 5 et Android 4 alphorm.com

  • Le support des langages Les chanes de caractres sont isoles

    Chaque locale est reprsente par un rpertoire

    Matriser Android 5 et Android 4 alphorm.com

    La recherche seffectue en descendant dans les sous-rpertoires

  • Le support des crans Les crans ont diffrentes tailles et diffrentes densits

    Tailles : small, normal, large, xlarge

    Densits : ldpi, mdpi, hdpi, xhdpi

    Lorientation de lcran correspond une variation de taille

    Matriser Android 5 et Android 4 alphorm.com

  • Le support des versions de plateformes Les versions sont reprsentes par des rpertoires

    Matriser Android 5 et Android 4 alphorm.com

    On peut rcuprer dans le code la version du SDK

  • Ce quon a couvert Le support des langages

    Le support des crans

    Le support des versions de plateformes

    Matriser Android 5 et Android 4 alphorm.com

  • Interagir avec dautres

    Raliser une application

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Interagir avec dautres activits

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Gnralits sur les Intent

    Lancer une sous-activit

    Les Intents Android

    Matriser Android 5 et Android 4 alphorm.com

  • Gnralits sur les intents Une intent dfinit une action et les donnes associs

    Une intent peut tre explicite ou implicite

    Soit dmarrer une activit bien prcise

    Soit faire excuter une action par une activit non spcifie

    Lactivation est possible grce au paramtrage de

    Matriser Android 5 et Android 4 alphorm.com

    Lactivation est possible grce au paramtrage de

  • Lancer une sous-activit Pour une action nomme .intent.action.NAME dans le

    manifest de lactivit

    Crer un objet de classe android.content.Intent

    Matriser Android 5 et Android 4 alphorm.com

    Lactivit elle-mme peut savoir comment elle a t sollicite

    Intent origine = this.getIntent();

  • Les Intents Android Intent.ACTION_VIEW : invocation du navigateur web

    Intent.ACTION_MAIN : point dentre dapplication

    Intent.ACTION_WEB_SEARCH : recherche Web

    Intent.ACTION_CALL : appel tlphonique

    Matriser Android 5 et Android 4 alphorm.com

    Catgories standards :

    CATEGORY_DEFAULT

    CATEGORY_LAUNCHER

    CATEGORY_BROWSABLE : accessible par un lien

  • Dclencher lenvoi dun mail Suivant laction choisie, on passe des donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Gnralits sur les Intent

    Lancer une sous-activit

    Les Intents Android

    Matriser Android 5 et Android 4 alphorm.com

  • Les composants

    Les interfaces utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Les composants graphiques

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les contrles Text

    Les contrles Button

    Les contrles Date/Time Picker

    Les contrles Clock

    Matriser Android 5 et Android 4 alphorm.com

    Les contrles List/Grid/Spinner

  • Les contrles Text TextView : texte sans dition possible

    EditText : champ de texte ditable

    AutoCompleteTextView : donne des possibilits de compltion

    MultiAutoCompleteTextView : idem mais multiple

    Matriser Android 5 et Android 4 alphorm.com

  • Les contrles Button La classe de base android.widget.Button

    Listener abonn soit en code Java soit en attribut de balise

    Matriser Android 5 et Android 4 alphorm.com

  • Les contrles Date/Time Picker DatePicker

    TimePicker

    Matriser Android 5 et Android 4 alphorm.com

  • Les contrles Clock TextClock

    AnalogClock

    Matriser Android 5 et Android 4 alphorm.com

  • Les contrles List/Grid/Spinner ListView

    GridView

    Spinner

    Matriser Android 5 et Android 4 alphorm.com

  • Les containers et les adapters Les List/Grid/Spinner rcuprent leurs donnes via des Adapters

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Les contrles Text

    Les contrles Button

    Les contrles Date/Time Picker

    Les contrles Clock

    Matriser Android 5 et Android 4 alphorm.com

    Les contrles List/Grid/Spinner

  • La logique de linterface

    Les interfaces utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    La logique de linterface graphique

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Construire une IHM en Java

    Construire une IHM en XML

    Construire une IHM en mixant XML et Java

    Matriser Android 5 et Android 4 alphorm.com

  • Construire une IHM en Java Les contrles sont attachs des ViewGroup, les layouts

    Chaque layout a une orientation

    Les ViewGroup sont eux-mmes attachs en relation parent-enfants

    Matriser Android 5 et Android 4 alphorm.com

  • Construire une IHM en XML Utilisant les balises

    Matriser Android 5 et Android 4 alphorm.com

  • Construire une IHM en mixant Java et XML La construction peut tre faite en XML

    Manipulation en Java

    Importance des id

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Construire une IHM en Java

    Construire une IHM en XML

    Construire une IHM en mixant XML et Java

    Matriser Android 5 et Android 4 alphorm.com

  • La gestion des menus

    Les interfaces utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    La gestion des menus

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les menus options

    Les menus contextuels

    Les menus popup

    Matriser Android 5 et Android 4 alphorm.com

  • Les menus options Ce sont les principaux menus dune activit

    Pour des actions ayant un impact global

    Depuis Android 3.0, ils sont dans la barre daction

    Matriser Android 5 et Android 4 alphorm.com

  • Les menus contextuels Un menu flottant qui apparat suite un long clic sur un lment

    Depuis Android 3.0, il sagit du mode daction contextuel de prfrence

    Matriser Android 5 et Android 4 alphorm.com

  • Les menus popup Une liste ditems qui correspondent la vue

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Les menus options

    Les menus contextuels

    Les menus popup

    Matriser Android 5 et Android 4 alphorm.com

  • La varit des

    Les interfaces utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    La varit des LayoutManager

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan LinearLayout

    TableLayout

    RelativeLayout

    FrameLayout

    Matriser Android 5 et Android 4 alphorm.com

    GridLayout

  • LinearLayout Les enfants sont organiss verticalement ou horizontalement

    La gravit est lancrage dun ct

    Le poids est le pourcentage de dformation

    Matriser Android 5 et Android 4 alphorm.com

  • TableLayout Extension de LinearLayout

    Les enfants sont placs en lignes/colonnes

    Matriser Android 5 et Android 4 alphorm.com

  • RelativeLayout Les enfants sont rattachs relativement

    Au conteneur : android:layout_alignParentTop,

    Aux voisins : android:toRightOf,

    Matriser Android 5 et Android 4 alphorm.com

  • FrameLayout Plusieurs enfants, mais un seul visible

    Utiliser setVisibility() pour faire afficher lun ou lautre

    Matriser Android 5 et Android 4 alphorm.com

  • GridLayout Positionne les enfants en lignes/colonnes

    Une cellule peut ne pas avoir de contrle

    Un contrle peut staler sur plusieurs lignes/colonnes

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert LinearLayout

    TableLayout

    RelativeLayout

    FrameLayout

    Matriser Android 5 et Android 4 alphorm.com

    GridLayout

  • Les fragments

    Les interfaces utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Les fragments

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Dfinition du fragment

    Intrt des fragments

    Matriser Android 5 et Android 4 alphorm.com

  • Dfinition des fragments Un fragment est une partie modulaire dune activit

    Un fragment a son propre cycle de vie

    Le fragment peut tre rfrenc dans un layout

    Ou bien activ dynamiquement

    Matriser Android 5 et Android 4 alphorm.com

  • Intrt du fragment Avec un fragment, on peut facilement sadapter des surfaces

    importantes

    Si la surface est faible, lancer une autre activit

    Si la surface est suffisante, faire apparatre le fragment

    Le fragment peut tre activ dynamiquement

    Matriser Android 5 et Android 4 alphorm.com

    Le fragment peut tre activ dynamiquement

  • Exemple deux activits deux fragments 1 activit charge un fragment La seconde activit charge

    Matriser Android 5 et Android 4 alphorm.com

    Le fragment (par exemple index) invoque une autre activit

    Le second fragment, qui reprsente par exemple les dtails

  • Exemple une activit deux fragments 1 activit a les deux fragments dans son layout

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Dfinition du fragment

    Intrt des fragments

    Matriser Android 5 et Android 4 alphorm.com

  • Mettre en place des tests

    Faire des tests

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Mettre en place des tests

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le rle et lintrt des tests

    Faire des tests manuels

    Les frameworks de test

    Matriser Android 5 et Android 4 alphorm.com

  • Le rle et lintrt des tests Vrifier que les composants fonctionnent comme attendu

    Rassurer le dveloppeur

    Permettre davancer sur les fonctionnalits sans compromettre lexistant

    Matriser Android 5 et Android 4 alphorm.com

  • Faire des tests manuels Simples mettre en uvre

    Particulirement pratique pour les tests dihm

    Longs et fastidieux

    Difficiles systmatiser

    Matriser Android 5 et Android 4 alphorm.com

    Ncessite une intervention humaine

  • Les frameworks de tests Propose des mthodes toutes prtes

    Assertions

    Propose une ihm pour visualiser tout de suite les problmes

    Permet dautomatiser des tests

    Matriser Android 5 et Android 4 alphorm.com

    En Java, la rfrence est Junit

    Les tests sont typiquement crs par Activit

  • Ce quon a couvert Le rle et lintrt des tests

    Faire des tests manuels

    Les frameworks de test

    Matriser Android 5 et Android 4 alphorm.com

  • Crer des tests unitaires

    Faire des tests

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Crer des tests unitaires

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les tests unitaires utilisant les frameworks

    Rgles de construction des tests

    Exemple de tests

    Matriser Android 5 et Android 4 alphorm.com

  • Les tests unitaires utilisant les frameworks Pour les tests nutilisant pas les composants Android, JUnit suffit

    Les composants Android sont tests avec les extensions

    Les classes de tests sont ranges dans des packages Java classiques

    Matriser Android 5 et Android 4 alphorm.com

  • Rgles de construction des tests Une classe de test par classe tester

    Une mthode de test par test

    Base sur JUnit 3, les mthodes commencent par test

    Commencer par crire des assertions

    Matriser Android 5 et Android 4 alphorm.com

    Btir le test ensuite

  • Exemple de test unitaire Une classe Voyage

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Les tests unitaires utilisant les frameworks

    Rgles de construction des tests

    Exemple de tests

    Matriser Android 5 et Android 4 alphorm.com

  • Tester linterface

    Faire des tests

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Tester linterface graphique

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le framework dinstrumentation

    Simuler linteraction utilisateur

    Matriser Android 5 et Android 4 alphorm.com

  • Le framework dinstrumentation Hriter de classes drives de TestCase

    ActivityInstrumentationTestCase

    Mettre en place un setUp

    Tester les interactions sur lihm

    Matriser Android 5 et Android 4 alphorm.com

  • Simuler les interactions Rcuprer les contrles

    Envoyer des vnements

    Attention ce que lapplication soit visible

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Le framework dinstrumentation

    Simuler linteraction utilisateur

    Matriser Android 5 et Android 4 alphorm.com

  • Tester avec les mocks

    Faire des tests

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Tester avec les mocks

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les classes de android.test.mock

    Utilisations des classes de Mock

    Matriser Android 5 et Android 4 alphorm.com

  • Les classes de android.test.mock MockApplication

    MockContentProvider

    MockContentResolver

    MockContext

    Matriser Android 5 et Android 4 alphorm.com

    MockCursor

    MockDialogInterface

    MockResources

  • Utilisation des classes de Mock Fournir une classe

    Pour compiler

    Faire fonctionner les services

    Ne propose pas une implmentation relle

    Permet davancer sur les tests

    Matriser Android 5 et Android 4 alphorm.com

    Permet davancer sur les tests

    Il suffit de redfinir les mthodes qui le ncessitent

  • Ce quon a couvert Les classes de android.test.mock

    Utilisations des classes de Mock

    Matriser Android 5 et Android 4 alphorm.com

  • Le compte dveloppeur

    Montiser lapplication

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le compte dveloppeur

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Cration du compte dveloppeur

    La console du dveloppeur

    Matriser Android 5 et Android 4 alphorm.com

  • Cration du compte dveloppeur Accder au site :

    Vrification par tlphone

    Matriser Android 5 et Android 4 alphorm.com

  • Compte dveloppeur Contrat accepter

    Rglement

    Matriser Android 5 et Android 4 alphorm.com

  • La console du dveloppeur Via le site http://developer.android.com/distribute/index.html

    Developer Console

    Matriser Android 5 et Android 4 alphorm.com

  • La console Liste des applications et statistiques

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Cration du compte dveloppeur

    La console du dveloppeur

    Matriser Android 5 et Android 4 alphorm.com

  • La prparation de

    Montiser lapplication

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    La prparation de lapplication

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Gestion du fichier APK

    Prparation de la fiche Google Play

    Matriser Android 5 et Android 4 alphorm.com

  • Gestion du fichier APK Gnrer le APK et le signer

    Tlcharger le fichier

    Matriser Android 5 et Android 4 alphorm.com

  • Prparation de la fiche Google Play Fournir les infos de description de lapplication

    Les captures

    Matriser Android 5 et Android 4 alphorm.com

  • Captures dcrans Par loutil Monitor

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Gestion du fichier APK

    Prparation de la fiche Google Play

    Matriser Android 5 et Android 4 alphorm.com

  • Grer la publicit

    Montiser lapplication

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Grer la publicit

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le compte AdMob

    Crer une unit publicitaire

    Installer le SDK

    Matriser Android 5 et Android 4 alphorm.com

  • Le compte AdMob Crer le compte , via le compte Google

    AdSense

    AdWords

    Matriser Android 5 et Android 4 alphorm.com

  • Crer une unit publicitaire Sous le compte AdMob

    Indiquer quelle application est concerne

    Matriser Android 5 et Android 4 alphorm.com

  • Installer le SDK Mettre en place la bibliothque de service Google Play

    Ne pas oublier la balise meta-data

    Dclarer une activit AdActivity

    Autoriser les connexions rseau

    Matriser Android 5 et Android 4 alphorm.com

    Puis crer un objet

    de type AdView dans votre ihm

  • Ce quon a couvert Le compte AdMob

    Crer une unit publicitaire

    Installer le SDK

    Matriser Android 5 et Android 4 alphorm.com

  • Les prfrences

    Stocker les informations

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Les prfrences

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan La classe SharedPreferences

    Positionner des valeurs

    Lire les informations de prfrence

    Enregistrer une callback

    Matriser Android 5 et Android 4 alphorm.com

  • La classe SharedPreferences Fournit des services pour sauver et rcuprer des paires cl-valeur de

    primitives et de chanes

    Pour obtenir un SharedPreferences, utiliser

    Soit getSharedPreferences() : chaque fichier est identifi

    Soit getPreferences() : un fichier unique pour lactivit

    Matriser Android 5 et Android 4 alphorm.com

    Soit getPreferences() : un fichier unique pour lactivit

  • Positionner des valeurs Utiliser la classe SharedPreferences.Editor pour positionner les valeurs

    Mthodes pour positionner des valeurs :

    putBoolean(String,boolean), putFloat(String,float), putInt(String,int), putLong(String,long), putString(String,String), putStringSet(String,Set)

    Matriser Android 5 et Android 4 alphorm.com

    Mthodes pour supprimer : clear(), remove(String)

    Mthodes pour appliquer les changements : apply(), commit()

  • Lire les informations de prfrence Sur la classe SharedPreferences

    getBoolean, getFloat, getInt, getLong, getString, getStringSet

    Paramtres : la cl et une valeur par dfaut

    Rcupration de toutes les valeurs : getAll

    Obtenir un Editor (pour positionner des valeurs) : edit

    Matriser Android 5 et Android 4 alphorm.com

    Obtenir un Editor (pour positionner des valeurs) : edit

    Vrifier quune cl existe : contains

    Enregistrer des callbacks : register.unregister

  • Enregistrer une callback Mthodes registerOnSharedPreferenceChangeListener(.), unregister

    Un listener doit tre fourni, qui sera appel lorsquune modification se produit sur les prfrences

    OnSharedPreferenceChangeListener est linterface implmenter

    Mthode onSharedPreferenceChanged(SharedPreference, String)

    Matriser Android 5 et Android 4 alphorm.com

    Mthode onSharedPreferenceChanged(SharedPreference, String)

  • Ce quon a couvert La classe SharedPreferences

    Positionner des valeurs

    Lire les informations de prfrence

    Enregistrer une callback

    Matriser Android 5 et Android 4 alphorm.com

  • Le stockage interne

    Stocker les informations

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le stockage interne

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan La mthode openFileOutput

    La mthode openFileInput

    Les fichiers de cache

    Matriser Android 5 et Android 4 alphorm.com

  • La mthode openFileOutput Cre un fichier accessible uniquement de lapplication

    Le fichier sera dtruit lors de la dsinstallation

    Les modes possibles sont

    Context.MODE_PRIVATE : cration/remplacement

    Matriser Android 5 et Android 4 alphorm.com

    Context.MODE_APPEND : ajoute

    Context.MODE_WORLD_READABLE : lisible par les autres applications

    Context.MODE_WORLD_WRITABLE : inscriptible par les autres

    Ecriture utilisant write

    Fermeture du flux avec close

  • La mthode openFileInput Dans la classe Context

    Retourne un FileInputStream

    Demande le nom du fichier ouvrir

    Peut lever FileNotFoundException

    Matriser Android 5 et Android 4 alphorm.com

  • Les fichiers de cache Obtenir le rpertoire de cache avec getCacheDir() : File

    Ouvrir et manipuler le fichier

    Les fichiers en cache sont privs lapplication

    Peuvent disparatre lorsque le systme a besoin

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert La mthode openFileOutput

    La mthode openFileInput

    Les fichiers de cache

    Matriser Android 5 et Android 4 alphorm.com

  • Le stockage externe

    Stocker les informations

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Le stockage externe

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Dfinition

    Mise en uvre initiale

    Crer un fichier et sauvegarder

    Matriser Android 5 et Android 4 alphorm.com

  • Dfinition Le stockage externe consiste stocker sur un support externe

    Cela peut tre rellement amovible, mais peut-tre non

    Permissions android.permission.READ/WRITE_EXTERNAL_STORAGE

    Donnes sans protection, accessibles dautres applications

    Matriser Android 5 et Android 4 alphorm.com

  • Mise en uvre initiale Dclarer la permission

    Vrifier la prsence dun stockage externe

    Matriser Android 5 et Android 4 alphorm.com

    Environment.getExternalStorageState()

    Vrifier la possibilit dy accder en criture

    Environment.MEDIA_MOUNTEDY

    Vrifier la possibilit dy accder en lecture

    Environment.MEDIA_MOUNTED_READ_ONLY

  • Crer un fichier et sauvegarder Pour un usage priv, utiliser getExternalFilesDir() : File

    Possibilit de passer un paramtre

    Pour un accs plus gnral, utiliser

    getExternalStoragePublicDirectory(..)

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Dfinition

    Mise en uvre initiale

    Crer un fichier et sauvegarder

    Matriser Android 5 et Android 4 alphorm.com

  • La base SQLite

    Stocker les informations

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    La base SQLite

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Lintrt de la base de donnes

    La cration et la mise jour du schma

    Ecrire et lire dans la base de donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Lintrt de la base de donnes Un stockage structur

    Tables, colonnes, types

    Des requtes utilisant le langage SQL

    Des volumes importants accessibles dans des temps raisonnables

    Matriser Android 5 et Android 4 alphorm.com

  • La cration et la mise jour du schma Utiliser SQLiteOpenHelper

    Sous classer cette classe, qui contient toute la mcanique

    Redfinir les mthodes permettant de crer et de mettre jour

    Matriser Android 5 et Android 4 alphorm.com

  • Ecrire et lire Obtenir une SQLiteDatabase

    Par appel de getWritableDatabase ou de getReadableDatabase

    Executer du SQL : execSQL ou query

    Rcupration des donnes via un Cursor

    Matriser Android 5 et Android 4 alphorm.com

    Loutil sqlite3 permet daccder une base de donnes via un terminal

  • Ce quon a couvert Lintrt de la base de donnes

    La cration et la mise jour du schma

    Ecrire et lire dans la base de donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Une interface pour les

    Stocker les informations

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Une interface pour les prfrences

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Un type dactivit ddi : PreferenceActivity

    Les crans de prfrence

    Matriser Android 5 et Android 4 alphorm.com

  • Un type dactivit ddi Construire une activit ddie aux prfrences

    Driver lactivit de PreferenceActivity

    Prparer les fragments correspondants chaque catgorie de prfrences

    Le stockage est automatique, puis utiliser

    Matriser Android 5 et Android 4 alphorm.com

    Le stockage est automatique, puis utiliser PreferenceManager.getDefaultSharedPreference() pour le relire

  • Les crans de prfrence Chaque catgorie de prfrence correspond un PreferenceScreen

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Un type dactivit ddi : PreferenceActivity

    Les crans de prfrence

    Matriser Android 5 et Android 4 alphorm.com

  • Prendre des photos

    Grer le multimdia

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Prendre des photos

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Laccs lappareil photo

    Rcuprer limage obtenue

    Stocker limage dans un fichier

    Contrler directement lappareil photo

    Matriser Android 5 et Android 4 alphorm.com

  • Laccs lappareil photo Penser dclarer lusage de lappareil photo

    Requis ou non

    Matriser Android 5 et Android 4 alphorm.com

    Sil nest pas requis, il faudra tester la disponibilit de lappareil photo

  • Rcuprer limage obtenue Limage peut-tre rcupre sous la forme dun bitmap

    Matriser Android 5 et Android 4 alphorm.com

  • Stocker limage dans un fichier Une image stocke dans un fichier externe

    Crer le fichier (File)

    Fournir une Uri lIntent

    putExtra(MediaStore.EXTRA_OUTPUT,Uri)

    Possible aussi de rajouter la photo dans la gallerie

    Matriser Android 5 et Android 4 alphorm.com

    Possible aussi de rajouter la photo dans la gallerie

  • Contrler directement lappareil photo Utiliser lobjet Camera, reprsentant lappareil photo

    Lappareil photo doit tre ouvert en pensant au temps long

    La fermeture doit tre envisage aussi

    Possible de grer une pr-visualisation

    Matriser Android 5 et Android 4 alphorm.com

    Le paramtrage de lappareil photo est reprsent par Camera.Parameters

  • Ce quon a couvert Laccs lappareil photo

    Rcuprer limage obtenue

    Stocker limage dans un fichier

    Contrler directement lappareil photo

    Matriser Android 5 et Android 4 alphorm.com

    Impossible d'afficher l'image. Votre ordinateur manque peut-tre de mmoire pour ouvrir l'image ou l'image est endommage. Redmarrez l'ordinateur, puis ouvrez nouveau le fichier. Si le x rouge est toujours affich, vous devrez peut-tre supprimer l'image avant de la rinsrer.

  • Enregistrer des vidos

    Grer le multimdia

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Enregistrer des vidos

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les permissions ncessaires

    Lenregistrement dune vido

    Visualiser la vido

    Matriser Android 5 et Android 4 alphorm.com

  • Les permissions ncessaires Dans le manifest,

    Demander android.hardware.camera2

    Exigence ou non de la vido pour lapplication

    Si non, tester sa prsence avant

    Matriser Android 5 et Android 4 alphorm.com

  • Lenregistrement dune vido Passer par une Intent

    Le nom de lintent est MediaStore.ACTION_VIDEO_CAPTURE

    Lancer la vido

    Matriser Android 5 et Android 4 alphorm.com

  • Visualiser la vido Avec un contrle VideoView

    Accder au rsultat de lIntent

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Les permissions ncessaires

    Lenregistrement dune vido

    Visualiser la vido

    Matriser Android 5 et Android 4 alphorm.com

  • Imprimer des documents

    Grer le multimdia

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Imprimer des documents

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les impressions sous Android

    Imprimer une photo

    Imprimer un document

    Matriser Android 5 et Android 4 alphorm.com

  • Les impressions sous Android Google Cloud Print

    Matriser Android 5 et Android 4 alphorm.com

    Impression dans Google Drive possible

    Impression en PDF

    Certaines imprimantes conncectes

  • Imprimer une photo Utiliser PrintHelper

    Positionner le layout avec setScaleMode

    Matriser Android 5 et Android 4 alphorm.com

  • Imprimer un document Crer sa propre sous-classe de PrintDocumentHelper et invoquer ce

    code

    Matriser Android 5 et Android 4 alphorm.com

  • Imprimer un document Le format du document est compltement dfini dans votre classe

    hritant de PrintDocumentHelper

    Matriser Android 5 et Android 4 alphorm.com

    Il faut implmenter 2 mthodes au moins

    La mthode onLayout, qui rend le nombre de pages

    La mthode onWrite, qui gre limpression elle-mme

  • Ce quon a couvert Les impressions sous Android

    Imprimer une photo

    Imprimer un document

    Matriser Android 5 et Android 4 alphorm.com

  • Manipuler un document

    XML et HTTP

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Manipuler un document XML

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Linterface XmlPullParser

    Exemple de code utilisant XmlPullParser

    Matriser Android 5 et Android 4 alphorm.com

  • Linterface XmlPullParser Permet le parcours dun document XML

    La mthode next() retourne lvnement rencontr

    La valeur XmlPullParser.END_DOCUMENT reprsente la fin du document

    START_DOCUMENT / END_DOCUMENT

    Matriser Android 5 et Android 4 alphorm.com

    START_TAG / END_TAG

    TEXT

    La mthode nextToken() est plus bas niveau

  • Exemple de code Parcours du document en ragissant sur les vnements

    Un buffer

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Linterface XmlPullParser

    Exemple de code utilisant XmlPullParser

    Matriser Android 5 et Android 4 alphorm.com

  • Se connecter avec HTTP

    XML et HTTP

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Se connecter avec HTTP

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le client HTTP

    Lexcution asynchrone

    Matriser Android 5 et Android 4 alphorm.com

  • Le client HTTP Pour accder au protocole HTTP

    La classe HttpClient

    Les requtes sont reprsentes par des classes

    HttpGet, HttpPost, HttpPut

    Matriser Android 5 et Android 4 alphorm.com

    Ne pas oublier les permissions INTERNET

  • Lexcution asynchrone Ne pas bloquer le thread ihm par lattente de la rponse web

    Utiliser AsyncTask

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Le client HTTP

    Lexcution asynchrone

    Matriser Android 5 et Android 4 alphorm.com

  • Solliciter un WebService

    XML et HTTP

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Solliciter un WebServiceRESTful

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Dfinition des services REST

    Lire une entit

    Matriser Android 5 et Android 4 alphorm.com

  • Dfinition des services REST Les webservices sont soit bass sur SOAP, soient utilisent simplement le

    protocole HTTP

    Une service RESTful utilise les commandes HTTP

    GET pour rcuprer une ressource

    DELETE pour supprimer une ressource

    Matriser Android 5 et Android 4 alphorm.com

    DELETE pour supprimer une ressource

    POST pour crer une ressource

    PUT pour mettre jour une ressource

    Les URL sont choisies pour identifier les ressources

  • Lire une entit Un objet peut tre reconstruit partir des donnes rcupres

    Format XML

    Format JSON

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Dfinition des services REST

    Lire une entit

    Matriser Android 5 et Android 4 alphorm.com

  • Rcuprer les infos de

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Rcuprer les infos de contacts

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les permissions

    La liste des contacts

    Le chargement des donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Les permissions Modifier le manifest

    Ajouter une balise pour accder aux contacts

    Matriser Android 5 et Android 4 alphorm.com

  • La liste des contacts Une ListView dans le layout

    Matriser Android 5 et Android 4 alphorm.com

    Connexion entre liste et curseur

  • Le chargement des donnes Implmentation

    Mthode de chargement

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Les permissions

    La liste des contacts

    Le chargement des donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Modifier les contacts par

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Modifier les contacts par les Intents

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Accder aux contacts via les Intents

    Ajouter un contact dans la liste

    Matriser Android 5 et Android 4 alphorm.com

  • Ajouter via les Intents Chercher lapplication qui insre dans les contacts

    Matriser Android 5 et Android 4 alphorm.com

    Possibilits de fournir des infos sur le contact en cours dinsertion

  • Ajouter, Editer Pour ajouter, dmarrer lactivit simplement aprs avoir fourni les

    informations

    Pour diter un contact spcifique, positionner setDataAndType()

    En fournissant lURI sur le contact pralablement slectionn

    Matriser Android 5 et Android 4 alphorm.com

    Il existe une action qui laisse le choix lutilisateur

    ACTION_INSERT_OR_EDIT

    Lancer lintent correspondant

  • Ce quon a couvert Accder aux contacts via les Intents

    Ajouter un contact dans la liste

    Matriser Android 5 et Android 4 alphorm.com

  • Utiliser les localisations

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Utiliser les localisations

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Les permissions et les installations

    Crer un GoogleApiClient

    Ragir sur les callbacks

    Matriser Android 5 et Android 4 alphorm.com

  • Les permissions et les installations Le plus simple est dutiliser les services Google

    Installer par le DSK manager

    Dclarer dans le script Gradle

    Dclarer dans le manifest

    Matriser Android 5 et Android 4 alphorm.com

    Permissions

  • Crer un GoogleApiClient GoogleApiClient est un point dentre dans les divers services google

    Positionner lors de la cration de cet objet les services attendus

    Matriser Android 5 et Android 4 alphorm.com

  • Ragir sur les callbacks Lors de la connexion, les infos sont rcupres

    La connexion doit tre dmarre et arrte

    Matriser Android 5 et Android 4 alphorm.com

    La callback exploite les donnes

  • Ce quon a couvert Les permissions et les installations

    Crer un GoogleApiClient

    Ragir sur les callbacks

    Matriser Android 5 et Android 4 alphorm.com

  • Localisation et adresse

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Localisation et adresse

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Utilisation de Geocoder

    Prparation dun receveur

    Lancement dun service

    Matriser Android 5 et Android 4 alphorm.com

  • Utilisation dun Geocoder Classe android.location.Geocoder

    Rcupre des noms de localisation partir de coordonnes

    Matriser Android 5 et Android 4 alphorm.com

  • Prparation dun receveur Un receveur est une classe dont les mthodes seront rappeles

    Il faudra mettre jour lihm dans le thread UI

    Matriser Android 5 et Android 4 alphorm.com

  • Lancement dun service Un service fonctionne en arrire-plan Idal pour la connexion la

    rcupration des noms dadresses

    Matriser Android 5 et Android 4 alphorm.com

  • Lancement dun service Utiliser startService()

    Matriser Android 5 et Android 4 alphorm.com

    Dclarer le service dans le manifest

  • Accder au thread UI partir dun autre Il est interdit de modifier lihm partir dun autre thread

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Utilisation de Geocoder

    Prparation dun receiver

    Lancement dun service

    Matriser Android 5 et Android 4 alphorm.com

  • Crer des notifications

    Android wear

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Crer des notifications

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Prparation pour des notifications

    Lancer une notification

    Matriser Android 5 et Android 4 alphorm.com

  • Prparations pour des notifications Modifier le script Gradle

    Rajouter la dpendance la bibliothque v4-support

    Matriser Android 5 et Android 4 alphorm.com

  • Lancer une notification Lancement de la notification la fois sur lappareil principal et la montre

    connecte

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Prparation pour des notifications

    Lancer une notification

    Matriser Android 5 et Android 4 alphorm.com

  • Crer une application

    Android wear

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Crer une application wearable

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Prrequis

    Excution dans un AVD spcifique

    Matriser Android 5 et Android 4 alphorm.com

  • Prrequis Une application wearable tourne sur lappareil connect, mais

    indpendamment du mobile

    Mais il faut une application mobile pour installer lapplication wearablesur la montre connecte

    Mises jour ncessaires

    Matriser Android 5 et Android 4 alphorm.com

    Les SDK Tools ne version 23 mini

    SDK Android mini API20

    Un AVD Wear

    Crer un projet Mobile+Wear, soit 2 activits

  • Excution dans un AVD spcifique Dans un AVD adapt

    Lancement de lactivit par dfaut

    Description du layout trs semblable aux applications mobiles

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Prrequis

    Excution dans un AVD spcifique

    Matriser Android 5 et Android 4 alphorm.com

  • Echanger des donnes

    Android wear

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Echanger des donnes

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Le client GoogleAPI

    Rceptionner des donnes

    Emettre des donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Le client GoogleAPI Crer un client GoogleAPI

    Api Wearable

    Possibilit dchanger des donnes

    Ou simplement un message

    Matriser Android 5 et Android 4 alphorm.com

  • Rceptionner les donnes Soit faire un service qui gre la rception

    Soit crer une classe implmentant DataListener

    Matriser Android 5 et Android 4 alphorm.com

  • Emettre des donnes Construire une map cl/valeur

    Emettre les donnes avec DataApi

    Ou bien un message avec MessageApi

    Matriser Android 5 et Android 4 alphorm.com

  • Ce quon a couvert Le client GoogleAPI

    Rceptionner des donnes

    Emettre des donnes

    Matriser Android 5 et Android 4 alphorm.com

  • Android 5

    Conclusion

    Matriser Android 5 et Android 4 alphorm.com

    Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum

    Android 5

    Fabien BrissonneauConsultant, concepteur et formateurObjets Logiciels

  • Plan Gnralits

    Utiliser lenvironnement

    Raliser une application

    Les interfaces utilisateur

    Stocker les informations

    Grer le multimdia

    XML et HTTP

    Grer les infos utilisateur

    Matriser Android 5 et Android 4 alphorm.com

    Faire des tests

    Montiser lapplication

    Android Wear

  • Pour continuer La formation Android avance

    Les interactions client-serveur

    Mise en uvre dtaille de Android Wear

    Mise en uvre des services Google

    Matriser Android 5 et Android 4 alphorm.com

  • Merci davoir suivi cette formation,

    Matriser Android 5 et Android 4 alphorm.com

    rendez-vous pour la suite !