Vous êtes sur la page 1sur 289

Prsentation de la formation

Android 5

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Gnralits Stocker les informations

Utiliser lenvironnement Grer le multimdia

Raliser une application XML et HTTP

Les interfaces utilisateur Grer les infos utilisateur

Faire des tests Android Wear

Montiser lapplication

Matriser Android 5 et Android 4 alphorm.com


Prsentation du formateur
Fabien Brissonneau

Email : fabien.brissonneau@gmail.com

Consultant Concepteur et Formateur

Missions darchitecture, de conception , de ralisation logicielles

Fondateur de eiXa6

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/

Matriser Android 5 et Android 4 alphorm.com


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

Les alternatives sont minoritaires

Matriser Android 5 et Android 4 alphorm.com


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


Gnralits sur Android
Histoire dAndroid

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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/

Une mascotte, BugDroid

Matriser Android 5 et Android 4 alphorm.com


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)

Lollipop (5)

Les versions correspondent plus ou moins des version de lAPI

Lollipop correspond lAPI 21

Matriser Android 5 et Android 4 alphorm.com


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

Les outils spcifiques la dernire plateforme sont les platform-tools

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Les acteurs

Le systme

Les outils

Matriser Android 5 et Android 4 alphorm.com


Gnralits sur Android
Architecture

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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)

Le noyau Linux et ses pilotes

Matriser Android 5 et Android 4 alphorm.com


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

Un garbage collector gre la mmoire

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Les couches du systme

Lexcution dune application

Matriser Android 5 et Android 4 alphorm.com


Gnralits sur Android
Les packages

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Larborescence des packages

Le package android.app

Les packages android.widget et android.view

Le package android.utils

Les packages com.google.android.gms.*

Matriser Android 5 et Android 4 alphorm.com


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


Les composants graphiques

Les packages java.*


Les classes java utilisables pour Android
Matriser Android 5 et Android 4 alphorm.com
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


Les composants de menu

Matriser Android 5 et Android 4 alphorm.com


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

Chaque API a son propre package

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Larborescence des packages

Le package android.app

Les packages android.widget et android.view

Le package android.utils

Les packages com.google.android.gms.*

Matriser Android 5 et Android 4 alphorm.com


Utiliser lenvironnement
Android Studio

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Images pour AVD

Matriser Android 5 et Android 4 alphorm.com


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

Certaines ressources sont non structures : les assets

Lorganisation des ressources suit des rgles de nommage et


dorganisation des rpertoires

Matriser Android 5 et Android 4 alphorm.com


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

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


Matriser Android 5 et Android 4 alphorm.com
Les fonctions et les tests dAndroid Studio
Lditeur de code

Des modles prts lemploi

Des applications multi-crans

Des matriels virtuels divers

Des scripts de construction volus

Matriser Android 5 et Android 4 alphorm.com


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


Utiliser lenvironnement
Compilation, excution et
dbogage

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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)
Les ressources compiles
Un manifest dcrivant lapplication
La signature dans un certificat (la cl prive est conserve par le dveloppeur)

Matriser Android 5 et Android 4 alphorm.com


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


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


Utiliser lenvironnement
Le dploiement

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Prparation minimum :
Mode release
Signer
Tester et vrifier lapplication et toutes les ressources externes

Matriser Android 5 et Android 4 alphorm.com


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)
Prrequis sur le SDK : minSdkVersion, targetSdkVersion, maxSdkVersion

Matriser Android 5 et Android 4 alphorm.com


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

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

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Les modes de livraison

La gestion des versions

Les signatures

Matriser Android 5 et Android 4 alphorm.com


Utiliser lenvironnement
Les outils

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Cration facilite des ihms

Edition simple et complte du code : quick fix, navigation facile, rgion


de code, aide rapidement accessible,

Matriser Android 5 et Android 4 alphorm.com


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

Les outils de dveloppement : android, hierachyviewer, lint, sdk


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

Les outils dimages

Remarque sur les outils lis la plateforme

Matriser Android 5 et Android 4 alphorm.com


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


Raliser une application
Un simple programme

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


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

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

Contrles complexes : Liste, Grille, Spinner et Gallerie


Travaille avec des adaptateurs

Matriser Android 5 et Android 4 alphorm.com


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


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

Matriser Android 5 et Android 4 alphorm.com


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

Il est cr avec lactivit

On peut ragir sur les items

Matriser Android 5 et Android 4 alphorm.com


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


Raliser une application
Sauvegarder les donnes

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Stockage dans les prfrences

Stockage interne

Stockage externe

Les bases de donnes SQLite

La connexion au rseau

Matriser Android 5 et Android 4 alphorm.com


Le stockage dans les prfrences
Stockage de paires cl-valeur

Utiliser la classe android.content.SharedPreferences


getSharedPreferences() ou getPreferences()

Stockage de toute variable primitive

Persistence des donnes entre sessions

Ecriture : edit() fournit un Editor


Appeler putXXX(v), puis commit()

Lecture : utiliser getXXX()

Matriser Android 5 et Android 4 alphorm.com


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)
Utiliser ensuite FileOutputStream/FileInputStream

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

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

Matriser Android 5 et Android 4 alphorm.com


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


getExternalStorageState()

Fichiers publics :
Environment.getExternalStoragePublicDirectory()

Fichiers app-private :
getExternalFilesDir()
Matriser Android 5 et Android 4 alphorm.com
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()

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

Et les rsultats sont parcourus avec un Cursor

Pour dboguer, penser loutil sqlite3

Matriser Android 5 et Android 4 alphorm.com


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

La connexion au rseau

Matriser Android 5 et Android 4 alphorm.com


Raliser une application
Le cycle de vie

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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
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

Matriser Android 5 et Android 4 alphorm.com


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

Le pendant est onDestroy(), rarement utilise

Matriser Android 5 et Android 4 alphorm.com


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 )

Le pendant : onResume()
Initialiser les senseurs
Reprendre les animations

Matriser Android 5 et Android 4 alphorm.com


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

Mthode onStop()
Librer toutes les ressources

et onRestart()
Rarement utile

Matriser Android 5 et Android 4 alphorm.com


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
La re-cration de lihm est prise en charge par le systme

Pour sauver/restaurer des donnes supplmentaires :


onSaveInstanceState / onRestoreInstanceState

Matriser Android 5 et Android 4 alphorm.com


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


Raliser une application
Lactionbar

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

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


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

Matriser Android 5 et Android 4 alphorm.com


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


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

Matriser Android 5 et Android 4 alphorm.com


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

Et ragir sur les boutons

Matriser Android 5 et Android 4 alphorm.com


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

Ici, lactivit SendMailActivity est fille de MainActivityMileage

Et ne pas oublier

Matriser Android 5 et Android 4 alphorm.com


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


Raliser une application
Le support des matriels

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

La recherche seffectue en descendant dans les sous-rpertoires

Matriser Android 5 et Android 4 alphorm.com


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

On peut rcuprer dans le code la version du SDK

Matriser Android 5 et Android 4 alphorm.com


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


Raliser une application
Interagir avec dautres
activits

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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 <intent-filter>

Matriser Android 5 et Android 4 alphorm.com


Lancer une sous-activit
Pour une action nomme <package>.intent.action.NAME dans le
manifest de lactivit
Crer un objet de classe android.content.Intent

Lactivit elle-mme peut savoir comment elle a t sollicite


Intent origine = this.getIntent();

Matriser Android 5 et Android 4 alphorm.com


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

Catgories standards :
CATEGORY_DEFAULT
CATEGORY_LAUNCHER
CATEGORY_BROWSABLE : accessible par un lien

Matriser Android 5 et Android 4 alphorm.com
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 interfaces utilisateur
Les composants
graphiques

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Les contrles Text

Les contrles Button

Les contrles Date/Time Picker

Les contrles Clock

Les contrles List/Grid/Spinner

Matriser Android 5 et Android 4 alphorm.com


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

Les contrles List/Grid/Spinner

Matriser Android 5 et Android 4 alphorm.com


Les interfaces utilisateur
La logique de linterface
graphique

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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 <LinearLayout/>

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


Les interfaces utilisateur
La gestion des menus

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Les interfaces utilisateur
La varit des
LayoutManager

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
LinearLayout

TableLayout

RelativeLayout

FrameLayout

GridLayout

Matriser Android 5 et Android 4 alphorm.com


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

GridLayout

Matriser Android 5 et Android 4 alphorm.com


Les interfaces utilisateur
Les fragments

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


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

Le fragment (par exemple index) Le second fragment, qui


invoque une autre activit reprsente par exemple les dtails

Matriser Android 5 et Android 4 alphorm.com


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


Faire des tests
Mettre en place des tests

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Ncessite une intervention humaine

Matriser Android 5 et Android 4 alphorm.com


Les frameworks de tests
Propose des mthodes toutes prtes
Assertions

Propose une ihm pour visualiser tout de suite les problmes

Permet dautomatiser des tests

En Java, la rfrence est Junit

Les tests sont typiquement crs par Activit

Matriser Android 5 et Android 4 alphorm.com


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


Faire des tests
Crer des tests unitaires

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Btir le test ensuite

Matriser Android 5 et Android 4 alphorm.com


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


Faire des tests
Tester linterface
graphique

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Faire des tests
Tester avec les mocks

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

MockCursor

MockDialogInterface

MockResources

Matriser Android 5 et Android 4 alphorm.com


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

Il suffit de redfinir les mthodes qui le ncessitent

Matriser Android 5 et Android 4 alphorm.com


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

Utilisations des classes de Mock

Matriser Android 5 et Android 4 alphorm.com


Montiser lapplication
Le compte dveloppeur

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Montiser lapplication
La prparation de
lapplication

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Montiser lapplication
Grer la publicit

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Puis crer un objet


de type AdView dans votre ihm

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Le compte AdMob

Crer une unit publicitaire

Installer le SDK

Matriser Android 5 et Android 4 alphorm.com


Stocker les informations
Les prfrences

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


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<String>)

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

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

Matriser Android 5 et Android 4 alphorm.com


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

Vrifier quune cl existe : contains

Enregistrer des callbacks : register.unregister

Matriser Android 5 et Android 4 alphorm.com


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


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


Stocker les informations
Le stockage interne

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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
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


Matriser Android 5 et Android 4 alphorm.com
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


Stocker les informations
Le stockage externe

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Environment.getExternalStorageState()

Vrifier la possibilit dy accder en criture


Environment.MEDIA_MOUNTEDY

Vrifier la possibilit dy accder en lecture


Environment.MEDIA_MOUNTED_READ_ONLY
Matriser Android 5 et Android 4 alphorm.com
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


Stocker les informations
La base SQLite

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Loutil sqlite3 permet daccder une base de donnes via un terminal

Matriser Android 5 et Android 4 alphorm.com


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


Stocker les informations
Une interface pour les
prfrences

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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
PreferenceManager.getDefaultSharedPreference() pour le relire

Matriser Android 5 et Android 4 alphorm.com


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


Grer le multimdia
Prendre des photos

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

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

Matriser Android 5 et Android 4 alphorm.com


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


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

Le paramtrage de lappareil photo est reprsent par


Camera.Parameters

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Laccs lappareil photo

Rcuprer limage obtenue

Stocker limage dans un fichier

Contrler directement lappareil photo

Impossible d'afficher l'image. Votre ordinateur manque peut-tre de mmoire pour ouv rir l'image ou l'image est endommage. Redmarrez l'ordinateur, puis ouv rez nouv eau
le fichier. Si le x rouge est toujours affich, v ous dev rez peut-tre supprimer l'image av ant de la rinsrer.

Matriser Android 5 et Android 4 alphorm.com


Grer le multimdia
Enregistrer des vidos

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Les permissions ncessaires

Lenregistrement dune vido

Visualiser la vido

Matriser Android 5 et Android 4 alphorm.com


Les permissions ncessaires
Dans le manifest, <uses-feature>

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


Grer le multimdia
Imprimer des documents

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Impression dans Google Drive possible

Impression en PDF

Certaines imprimantes conncectes

Matriser Android 5 et Android 4 alphorm.com


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

Il faut implmenter 2 mthodes au moins


La mthode onLayout, qui rend le nombre de pages
La mthode onWrite, qui gre limpression elle-mme

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Les impressions sous Android

Imprimer une photo

Imprimer un document

Matriser Android 5 et Android 4 alphorm.com


XML et HTTP
Manipuler un document
XML

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

START_TAG / END_TAG

TEXT

La mthode nextToken() est plus bas niveau

Matriser Android 5 et Android 4 alphorm.com


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


XML et HTTP
Se connecter avec HTTP

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Ne pas oublier les permissions INTERNET

Matriser Android 5 et Android 4 alphorm.com


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

Utiliser AsyncTask<Paramtres, Progression, Resultat>

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


XML et HTTP
Solliciter un WebService
RESTful

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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
POST pour crer une ressource
PUT pour mettre jour une ressource

Les URL sont choisies pour identifier les ressources

Matriser Android 5 et Android 4 alphorm.com


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


Grer les infos utilisateur
Rcuprer les infos de
contacts

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Connexion entre liste et curseur

Matriser Android 5 et Android 4 alphorm.com


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


Grer les infos utilisateur
Modifier les contacts par
les Intents

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Possibilits de fournir des infos sur le contact en cours dinsertion

Matriser Android 5 et Android 4 alphorm.com


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

Il existe une action qui laisse le choix lutilisateur


ACTION_INSERT_OR_EDIT
Lancer lintent correspondant

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Accder aux contacts via les Intents

Ajouter un contact dans la liste

Matriser Android 5 et Android 4 alphorm.com


Grer les infos utilisateur
Utiliser les localisations

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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

Permissions

Matriser Android 5 et Android 4 alphorm.com


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

La callback exploite les donnes

Matriser Android 5 et Android 4 alphorm.com


Ce quon a couvert
Les permissions et les installations

Crer un GoogleApiClient

Ragir sur les callbacks

Matriser Android 5 et Android 4 alphorm.com


Grer les infos utilisateur
Localisation et adresse

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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()

Dclarer le service dans le manifest

Matriser Android 5 et Android 4 alphorm.com


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


Android wear
Crer des notifications

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Android wear
Crer une application
wearable

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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 wearable
sur la montre connecte
Mises jour ncessaires
Les SDK Tools ne version 23 mini
SDK Android mini API20

Un AVD Wear

Crer un projet Mobile+Wear, soit 2 activits

Matriser Android 5 et Android 4 alphorm.com


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


Android wear
Echanger des donnes

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
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


Conclusion
Android 5

Site : http://www.alphorm.com Fabien Brissonneau


Blog : http://www.alphorm.com/blog Consultant, concepteur et formateur
Forum : http://www.alphorm.com/forum Objets Logiciels
Matriser Android 5 et Android 4 alphorm.com
Plan
Gnralits Stocker les informations

Utiliser lenvironnement Grer le multimdia

Raliser une application XML et HTTP

Les interfaces utilisateur Grer les infos utilisateur

Faire des tests Android Wear

Montiser lapplication

Matriser Android 5 et Android 4 alphorm.com


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,
rendez-vous pour la suite !

Matriser Android 5 et Android 4 alphorm.com