![Page 1: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/1.jpg)
Editions ENI
AndroidGuide de développement d’applications Java
pour Smartphones et Tablettes
(4e édition)
CollectionExpert IT
Table des matières
![Page 2: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/2.jpg)
1Table des matières
Avant-propos
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2. À qui s'adresse cet ouvrage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3. Connaissances nécessaires pour aborder cet ouvrage . . . . . . . . . . . . . 18
4. Objectifs à atteindre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5. Téléchargements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6. Informations complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7. Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Chapitre 1L'univers Android
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2. Présentation d'Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.1 Open Handset Alliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Versions d'Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1 Chronologie des versions . . . . . . . . . . . . . . . . . . . . . . . . . . 262.3.2 Répartition des distributions Android . . . . . . . . . . . . . . . 31
2.4 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3. Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Téléchargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr
Saisissez la référence ENI de l'ouvrage EI4AND dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
![Page 3: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/3.jpg)
2Guide de développement d’applications Java
Android
Chapitre 2Premiers pas
1. Premier projet Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491.1 Création du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491.2 Organisation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.3 Compilation et exécution de l'application . . . . . . . . . . . . . . . . . 57
1.3.1 Sur l'émulateur Android. . . . . . . . . . . . . . . . . . . . . . . . . . . 571.3.2 Sur un appareil Android . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2. Structure d'un projet Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.1 Structure du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.2 Gradle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.2.1 Configuration niveau projet . . . . . . . . . . . . . . . . . . . . . . . 702.2.2 Configuration niveau app . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.3 Le manifeste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742.3.1 Balise manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.3.2 Balise uses-sdk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.3.3 Balise application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.4 Les ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3. Qualification des ressources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.1 Écrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.2 Internationalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.3 Autres qualificatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Chapitre 3Les bases de l'interface utilisateur
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2. Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962.1 Activités et Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962.2 Mode programmatique et mode déclaratif . . . . . . . . . . . . . . . . . 982.3 Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
![Page 4: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/4.jpg)
3Table des matières
3. Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023.1 Création en mode déclaratif. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073.2 Création en mode programmatique . . . . . . . . . . . . . . . . . . . . . 111
4. Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144.3 Découverte de quelques widgets . . . . . . . . . . . . . . . . . . . . . . . . 114
4.3.1 TextView (champ de texte) . . . . . . . . . . . . . . . . . . . . . . . 1154.3.2 EditText (champ de texte de saisie) . . . . . . . . . . . . . . . . 1184.3.3 Button (bouton) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.3.4 Autres widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.4 Première utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5. Activités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275.2 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.1 onCreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305.2.2 onStart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325.2.3 onResume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325.2.4 onPause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335.2.5 onStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345.2.6 onRestart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355.2.7 onDestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355.2.8 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.3 Lancement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385.4 Sauvegarde et restauration de l'état. . . . . . . . . . . . . . . . . . . . . . 1405.5 Pile d’activités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
![Page 5: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/5.jpg)
4Guide de développement d’applications Java
Android
Chapitre 4Composants avancés
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2. Fragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1462.1 Intégration du fragment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
2.1.1 Mode déclaratif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472.1.2 Mode programmatique . . . . . . . . . . . . . . . . . . . . . . . . . . 1482.1.3 Bibliothèque de support . . . . . . . . . . . . . . . . . . . . . . . . . . 152
2.2 Fragments et mise en page adaptative . . . . . . . . . . . . . . . . . . . 1542.3 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.3.1 onAttach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.3.2 onCreateView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.3.3 onActivityCreated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.3.4 onDestroyView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.3.5 onDetach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
2.4 Sauvegarde et restauration de l'état . . . . . . . . . . . . . . . . . . . . . 1602.5 Pile de fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
3. Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.1 Implémentation standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.1.1 Layout des éléments de la liste . . . . . . . . . . . . . . . . . . . . 1643.1.2 Adaptateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.1.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.2 Implémentation spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1693.2.1 Layout des éléments de la liste . . . . . . . . . . . . . . . . . . . . 1703.2.2 Adaptateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.3 Interactions avec un composant ListView . . . . . . . . . . . . . . . . 1743.3.1 Sélection d’un élément. . . . . . . . . . . . . . . . . . . . . . . . . . . 1743.3.2 Mise à jour de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.4 Le composant Liste déroulante . . . . . . . . . . . . . . . . . . . . . . . . . 179
![Page 6: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/6.jpg)
5Table des matières
4. Créer ses propres composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1814.1 Surcharger un composant existant . . . . . . . . . . . . . . . . . . . . . . 181
4.1.1 Étendre une classe du package android.widget. . . . . . . . 1824.1.2 Intégrer le nouveau composant dans un layout . . . . . . . 1834.1.3 Ajouter des attributs personnalisés . . . . . . . . . . . . . . . . . 183
4.2 Réunir un ensemble de composants . . . . . . . . . . . . . . . . . . . . . 1864.3 Construire entièrement un composant. . . . . . . . . . . . . . . . . . . 187
4.3.1 Implémenter onDraw() . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.3.2 Implémenter onMeasure() . . . . . . . . . . . . . . . . . . . . . . . . 1884.3.3 Obtenir les dimensions de l'écran . . . . . . . . . . . . . . . . . . 189
Chapitre 5Styles, navigation et notifications
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
2. Styles et thèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1912.1 Les styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1922.2 Notion de thème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1932.3 Héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
3. Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2023.3 Menu d'activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.3.1 Création. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2053.3.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.4 Menu contextuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.4.1 Création. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.4.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
3.5 Menus pop-up. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4. Barre d'action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2114.1 Intégration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
4.1.1 Dans le fichier de layout . . . . . . . . . . . . . . . . . . . . . . . . . 2124.1.2 Dans l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
![Page 7: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/7.jpg)
6Guide de développement d’applications Java
Android
4.2 Personnalisation de la barre d’action. . . . . . . . . . . . . . . . . . . . . 2154.2.1 Images et titre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2154.2.2 Icône de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
5. Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2195.1 Toast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2195.2 Boîte de dialogue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.2.1 Tour d'horizon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2235.2.2 Boîte de dialogue d'alerte . . . . . . . . . . . . . . . . . . . . . . . . . 224
5.3 Barre de notification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295.3.1 Création d'une notification basique . . . . . . . . . . . . . . . . 2295.3.2 Compléter une notification . . . . . . . . . . . . . . . . . . . . . . . 2375.3.3 Interagir avec une notification . . . . . . . . . . . . . . . . . . . . 241
Chapitre 6Interface utilisateur avancée
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
2. Mise en page complexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.1 Choix du layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.2 Positionnement relatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472.3 Utiliser les poids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2492.4 Utiliser les ressources « dimension » . . . . . . . . . . . . . . . . . . . . . 2542.5 Travailler avec le constraintLayout . . . . . . . . . . . . . . . . . . . . . . 256
3. Utiliser le Navigation Drawer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2623.1 Mettre en place le panneau de navigation . . . . . . . . . . . . . . . . 2633.2 Utiliser le panneau de navigation . . . . . . . . . . . . . . . . . . . . . . . 266
3.2.1 Détecter les événements d'ouverture/fermeture . . . . . . 2663.2.2 Navigation Drawer et ActionBar. . . . . . . . . . . . . . . . . . . 2673.2.3 Forcer l'ouverture du panneau
au lancement de l'activité. . . . . . . . . . . . . . . . . . . . . . . . . 2683.3 Remplir le panneau de navigation. . . . . . . . . . . . . . . . . . . . . . . 269
![Page 8: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/8.jpg)
7Table des matières
4. Créer des images redimensionnables . . . . . . . . . . . . . . . . . . . . . . . . . 2724.1 Les images 9-patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
4.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2724.1.2 Créer des images 9-patch . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.2 Les drawables XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.2.1 Définir une forme en XML . . . . . . . . . . . . . . . . . . . . . . . 2804.2.2 Modifier la forme initiale . . . . . . . . . . . . . . . . . . . . . . . . . 2834.2.3 Combiner plusieurs formes . . . . . . . . . . . . . . . . . . . . . . . 287
Chapitre 7La persistance des données
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
2. Fichiers de préférences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2892.1 Cibler le fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2902.2 Lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.3 Écriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.4 Suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
3. Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2953.1 Stockage interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
3.1.1 Écriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2953.1.2 Lecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2963.1.3 Supprimer un fichier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
3.2 Stockage externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.2.1 Disponibilité du support . . . . . . . . . . . . . . . . . . . . . . . . . 2983.2.2 Accès et emplacements . . . . . . . . . . . . . . . . . . . . . . . . . . 2993.2.3 Fichiers communs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
3.3 Fichiers temporaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3013.3.1 Stockage interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3013.3.2 Stockage externe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
![Page 9: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/9.jpg)
8Guide de développement d’applications Java
Android
4. Bases de données SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3034.1 Création d'une base de données. . . . . . . . . . . . . . . . . . . . . . . . . 3034.2 Traitements et requêtes SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . 305
4.2.1 Navigation dans les résultats . . . . . . . . . . . . . . . . . . . . . . 3064.2.2 Lecture de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
4.3 Mises à jour. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3084.4 Optimisation pour la recherche textuelle . . . . . . . . . . . . . . . . . 311
4.4.1 Création et peuplement de la table . . . . . . . . . . . . . . . . . 3114.4.2 Interrogation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
5. Fournisseur de contenus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3145.1 Interface et URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3145.2 Requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3155.3 Ajout d'un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3185.4 Suppression d'enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . 318
6. Sauvegarde dans les nuages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3196.1 Souscrire à l'Android Backup Service. . . . . . . . . . . . . . . . . . . . . 3206.2 Configuration de la clé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3226.3 Agent de sauvegarde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
6.3.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3246.3.2 BackupAgentHelper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
6.4 Gestionnaire de sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3276.4.1 Demander une sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . 3286.4.2 Tester le service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
7. Prise en charge du JSON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3297.1 Présentation du format JSON . . . . . . . . . . . . . . . . . . . . . . . . . . 3297.2 Interprétation du format JSON. . . . . . . . . . . . . . . . . . . . . . . . . 331
![Page 10: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/10.jpg)
9Table des matières
Chapitre 8Intentions, récepteurs d’événements et services
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
2. Intention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3362.1 Intention explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3362.2 Intention implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
2.2.1 Création. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3372.2.2 Filtre d’intention. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
2.3 Intention en attente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
3. Récepteur d'événements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3443.1 Événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3453.2 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3463.3 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
4. Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3494.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3504.2 Utilisation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3514.3 Utilisation en établissant une connexion . . . . . . . . . . . . . . . . . 3524.4 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
4.4.1 onCreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3554.4.2 onStartCommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3554.4.3 onBind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3564.4.4 onUnbind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3574.4.5 onDestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
4.5 IntentService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
![Page 11: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/11.jpg)
10Guide de développement d’applications Java
Android
Chapitre 9Concurrence, sécurité et réseau
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
2. Processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3612.1 android:process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3622.2 Partage de processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
3. Programmation concurrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3653.1 AsyncTask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3663.2 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.2.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3703.2.2 runOnUIThread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3713.2.3 Communication interthreads . . . . . . . . . . . . . . . . . . . . . 372
4. Sécurité et droits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3754.1 Les droits avant Android MarshMallow . . . . . . . . . . . . . . . . . . 3764.2 Les droits sous Android MarshMallow . . . . . . . . . . . . . . . . . . . 3764.3 Déclaration de droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3794.4 Restriction d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
5. Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3815.1 Agent utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3835.2 AndroidHttpClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3865.3 Utilisation de la bibliothèque Volley. . . . . . . . . . . . . . . . . . . . . 389
5.3.1 Intégration de Volley . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3895.3.2 Requêtes de type chaîne de caractères . . . . . . . . . . . . . . 3945.3.3 Ajouter des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . 3975.3.4 Requêtes au format JSON . . . . . . . . . . . . . . . . . . . . . . . . 3975.3.5 Requêtes au format Image . . . . . . . . . . . . . . . . . . . . . . . . 3995.3.6 Autres requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
![Page 12: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/12.jpg)
11Table des matières
Chapitre 10Réseaux sociaux
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
2. Intégration standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4022.1 Sous Android 2.x et 3.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4022.2 Sous Android 4.x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
3. Intégration complète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4073.1 Récupérer les clés d'API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
3.1.1 Créer une application Facebook. . . . . . . . . . . . . . . . . . . . 4083.1.2 Autres réseaux sociaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
3.2 Installer le SDK SocialAuth-Android . . . . . . . . . . . . . . . . . . . . 4113.2.1 Intégration des bibliothèques dans le projet . . . . . . . . . . 4123.2.2 Utilisation de l'API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Chapitre 11Tracer, déboguer et tester
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
2. Journal d'événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4202.1 Consultation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.2 Écriture des événements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
3. Débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4243.1 Débogage pas à pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4243.2 Android Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
3.2.1 Analyse du CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4263.2.2 Analyse de la mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 4293.2.3 Vue Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
3.3 Android Device Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4313.3.1 Vue Devices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4333.3.2 Vue Emulator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
![Page 13: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/13.jpg)
12Guide de développement d’applications Java
Android
3.3.3 Vue Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4363.3.4 Vue Heap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4373.3.5 Vue Allocation Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . 4383.3.6 Vue File Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
4. Tests unitaires et fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4394.1 Création d'un projet de tests . . . . . . . . . . . . . . . . . . . . . . . . . . . 4404.2 Création d'une classe de tests unitaires locaux. . . . . . . . . . . . . 4414.3 Création d’un test pour une activité . . . . . . . . . . . . . . . . . . . . . 443
5. Test du singe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Chapitre 12Publier une application
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
2. Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4512.1 Version de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
2.1.1 android:versionCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4512.1.2 android:versionName. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4522.1.3 Surcharge par Gradle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
2.2 Filtres pour le marché. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4542.2.1 uses-feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4552.2.2 uses-configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
3. Signature de l'application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4563.1 Compilation en mode débogage . . . . . . . . . . . . . . . . . . . . . . . . 4573.2 Compilation en mode final . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
3.2.1 Protection du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4593.2.2 Signer l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4603.2.3 Installer l'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
4. Production de plusieurs versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
![Page 14: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/14.jpg)
13Table des matières
5. Publication de l'application sur le Play Store . . . . . . . . . . . . . . . . . . 4675.1 Inscription. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4685.2 Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
5.2.1 Fichier .apk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4795.2.2 Fiche Google Play Store . . . . . . . . . . . . . . . . . . . . . . . . . . 4795.2.3 Tarifs et disponibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4815.2.4 Coordonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4825.2.5 Accepter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
5.3 Et après ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Chapitre 13Capteurs et géolocalisation
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2. Les capteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4862.1 Détecter un capteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4862.2 Obtenir les valeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
3. Localisation géographique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4933.1 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4943.2 Gestionnaire de localisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4953.3 Récupérer les données de localisation . . . . . . . . . . . . . . . . . . . . 496
3.3.1 En cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4973.3.2 Une seule fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4973.3.3 Périodiquement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5013.3.4 Stopper les mises à jour . . . . . . . . . . . . . . . . . . . . . . . . . . 503
4. Cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5034.1 Mise en place. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5044.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5064.3 Suivre la géocalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5104.4 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
![Page 15: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/15.jpg)
14Guide de développement d’applications Java
Android
Chapitre 14La technologie NFC
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
2. Présentation de NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5152.1 Les scénarios d'utilisation du NFC . . . . . . . . . . . . . . . . . . . . . . 5162.2 Les tags NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
3. Prise en charge du NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5183.1 Utiliser avec un émulateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5183.2 Détecter si l'appareil est compatible NFC. . . . . . . . . . . . . . . . . 519
3.2.1 Filtrer les appareils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5193.2.2 Tester à l'exécution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5203.2.3 Activation par l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . 520
4. Découverte d'un tag NFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5214.1 Prise en charge d'un intent
ACTION_NDEF_DISCOVERED . . . . . . . . . . . . . . . . . . . . . . . 5224.2 Prise en charge d'un intent
ACTION_TECH_DISCOVERED . . . . . . . . . . . . . . . . . . . . . . . 5234.3 Prise en charge d'un intent ACTION_TAG_DISCOVERED. . 5254.4 Android Application Records. . . . . . . . . . . . . . . . . . . . . . . . . . . 5264.5 Foreground dispatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
5. Lire un tag NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5295.1 Déterminer le contenu d'un tag NDEF . . . . . . . . . . . . . . . . . . . 5295.2 Lire une URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5305.3 Lire une chaîne de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . 5325.4 Lire un type MIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5335.5 Lire un tag de type TNF_WELL_KNOWN . . . . . . . . . . . . . . . . 533
6. Écrire un tag NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5346.1 Définir un enregistrement NdefRecord avec l'API 9 . . . . . . . . 535
6.1.1 Construire un payload de type texte. . . . . . . . . . . . . . . . 5366.1.2 Construire un payload de type URI . . . . . . . . . . . . . . . . 537
6.2 Définir un enregistrement NdefRecord avec les API 14 et 16 . 538
![Page 16: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/16.jpg)
15Table des matières
Chapitre 15Objets connectés
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
2. Détection et connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5422.1 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5422.2 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5432.3 Recherche d’appareil BLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
2.3.1 Recherche sous Jelly Bean . . . . . . . . . . . . . . . . . . . . . . . . 5442.3.2 Recherche sous Lollipop . . . . . . . . . . . . . . . . . . . . . . . . . . 5462.3.3 Appliquer des filtres lors de la recherche. . . . . . . . . . . . . 547
2.4 Connexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
3. Échange de données/interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 5533.1 Découvrir les services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5533.2 Lire une caractéristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5563.3 Écrire une valeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Chapitre 16Fonctionnalités avancées
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
2. App Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5622.1 Création. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5632.2 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5632.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5642.4 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
2.4.1 onEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5672.4.2 onDisabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5672.4.3 onUpdate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5682.4.4 onDeleted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
2.5 RemoteViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
![Page 17: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/17.jpg)
16Guide de développement d’applications Java
Android
2.6 Activité de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5722.6.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5722.6.2 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
3. Protéger les applications payantes. . . . . . . . . . . . . . . . . . . . . . . . . . . 5753.1 Installation de la LVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
3.1.1 Téléchargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5763.1.2 Intégration de la LVL dans le code source. . . . . . . . . . . . 577
3.2 Utilisation de la LVL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5783.2.1 Politique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5783.2.2 Obfuscation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5793.2.3 Vérification de la licence . . . . . . . . . . . . . . . . . . . . . . . . . 580
3.3 Tester. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5823.3.1 Tester sur un appareil Android . . . . . . . . . . . . . . . . . . . . 5873.3.2 Tester sur un émulateur. . . . . . . . . . . . . . . . . . . . . . . . . . 587
4. Proposer des achats intégrés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5884.1 Préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5884.2 Utilisation du paiement intégré . . . . . . . . . . . . . . . . . . . . . . . . 591
4.2.1 Initier la communication avec le Play Store . . . . . . . . . . 5914.2.2 Obtenir la liste des produits. . . . . . . . . . . . . . . . . . . . . . . 5924.2.3 Vérifier qu’un produit a été commandé . . . . . . . . . . . . . 5944.2.4 Commander un produit . . . . . . . . . . . . . . . . . . . . . . . . . . 595
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
![Page 18: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/18.jpg)
Editions ENI
Développez une application AndroidProgrammation en Java sous Android Studio
(2e édition)
CollectionExpert IT
Table des matières
![Page 19: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/19.jpg)
1Table des matières
Avant-propos
Chapitre 1
Environnement de développement
1. Architecture d’Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1 Présentation d’Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Play Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2. Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.1 Installation sous Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 Installation sous Max OS X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3 Installation sous Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3. Compléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Chapitre 2
Principes de base d’Android
1. Concepts de base d’une application Android . . . . . . . . . . . . . . . . . . . 311.1 Contexte d’exécution/Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . 311.2 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.3 Fichier AndroidManifest.xml. . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.4 Les activités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2. Un premier projet : Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333. Préparer un terminal virtuel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444. Configurer un terminal physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr
Saisissez la référence ENI de l'ouvrage EI2ASAND dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
![Page 20: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/20.jpg)
2Programmation en Java sous Android Studio
Développez une application Android
5. Débogage, trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.1 Messages Toast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.2 Logcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575.3 Autres outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Chapitre 3
Préparation du projet LocDVD
1. Gérer la fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1 Densité d’écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.2 Les ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.3 Density-independent pixel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2. Jongler avec plusieurs versions d’API . . . . . . . . . . . . . . . . . . . . . . . . . 663. Bibliothèques de support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674. Internationalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685. Généralisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696. Notion de saveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717. Préparation du projet LocDVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Chapitre 4
Consultation et saisie de données
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732. Les activités – cycle de vie d’un écran . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1 Création d’une nouvelle activité . . . . . . . . . . . . . . . . . . . . . . . . . 742.2 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752.3 Initialisation de l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3. Construction d’un écran de consultation des données . . . . . . . . . . . 783.1 Création de l’interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.1 Code source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.1.2 Les propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.1.3 Propriétés spécifiques pour les composants
LinearLayout et TextView. . . . . . . . . . . . . . . . . . . . . . . . . 843.1.4 Définir un identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
![Page 21: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/21.jpg)
3Table des matières
3.1.5 Construction de l’interface . . . . . . . . . . . . . . . . . . . . . . . . 863.2 Liaison du fichier de layout avec le code de l’activité. . . . . . . . . 883.3 Inscription dans le Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4. Saisie des données, contrôles principaux. . . . . . . . . . . . . . . . . . . . . . . 964.1 Création du squelette de l’écran . . . . . . . . . . . . . . . . . . . . . . . . . 974.2 Gestion des boutons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.2.1 Réagir au clic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.2.2 Ajouter un composant . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.3 Test de l’écran de saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075. Mettre en forme un écran, gérer l’affichage adaptatif . . . . . . . . . . . 109
5.1 Faire défiler l’écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.2 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125.3 Gérer la rotation de l’écran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.3.1 Sauvegarder les données. . . . . . . . . . . . . . . . . . . . . . . . . . 1155.3.2 Restaurer les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Chapitre 5
Persistance des données
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212. Création et modification d’une base de données . . . . . . . . . . . . . . . 121
2.1 Création de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . 1222.2 Modification de la base de données. . . . . . . . . . . . . . . . . . . . . . 126
3. Manipulation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273.1 Création de la classe DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273.2 Requêtes de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303.3 Requête d’enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333.4 Requête de suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1363.5 Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4. Sauvegarde des préférences utilisateurs . . . . . . . . . . . . . . . . . . . . . . 1375. Lire et écrire dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.1 Intégrer un fichier de données . . . . . . . . . . . . . . . . . . . . . . . . . . 1395.2 Lire les données et les enregistrer. . . . . . . . . . . . . . . . . . . . . . . . 1405.3 Mémoriser la lecture du fichier . . . . . . . . . . . . . . . . . . . . . . . . . 143
![Page 22: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/22.jpg)
4Programmation en Java sous Android Studio
Développez une application Android
Chapitre 6
Contrôles avancés
1. Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451.1 Intégrer une liste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
1.1.1 Intégrer un composant ListView. . . . . . . . . . . . . . . . . . . 1461.1.2 Déclaration d’un layout pour les éléments de la liste . . 1481.1.3 Implémenter un adaptateur. . . . . . . . . . . . . . . . . . . . . . . 149
1.2 Relier le composant ListView à l’adaptateur . . . . . . . . . . . . . . 1531.3 Gérer le clic sur un élément . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591.4 Afficher le DVD sélectionné . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
2. GridView, liste déroulante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692.1 Composant GridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692.2 Liste déroulante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3. TimePicker/DatePicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.1 Ajout d’un champ date de visionnage. . . . . . . . . . . . . . . . . . . . 1713.2 Saisie de la date de visionnage . . . . . . . . . . . . . . . . . . . . . . . . . . 172
4. Créer son propre composant réutilisable . . . . . . . . . . . . . . . . . . . . . 1774.1 Surcharger un composant de la plateforme . . . . . . . . . . . . . . . 1774.2 Définir des attributs personnalisés . . . . . . . . . . . . . . . . . . . . . . 1784.3 Intégrer le composant dans un layout . . . . . . . . . . . . . . . . . . . 180
Chapitre 7
Les fragments
1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.1 Fragment et activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.2 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.3 Compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
2. Travailler avec les fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1862.1 Création du fragment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1862.2 Modification de l’activité hôte . . . . . . . . . . . . . . . . . . . . . . . . . 191
3. Mise en œuvre du modèle Master/Detail . . . . . . . . . . . . . . . . . . . . . 1963.1 Mise en place du layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.2 Modification de la vue détaillée. . . . . . . . . . . . . . . . . . . . . . . . . 202
![Page 23: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/23.jpg)
5Table des matières
3.3 Gestion des fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Chapitre 8
Navigation et boîtes de dialogue
1. Les menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2151.1 Définition du menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2151.2 Prise en compte par l’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
2. Le navigation drawer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232.1 Modification du layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232.2 Prise en charge par l’activité. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262.3 Manipuler le panneau de navigation . . . . . . . . . . . . . . . . . . . . . 231
3. Afficher une boîte de dialogue standard . . . . . . . . . . . . . . . . . . . . . . 2334. Créer des boîtes de dialogue personnalisées . . . . . . . . . . . . . . . . . . . 238
Chapitre 9
Tâches asynchrones et services
1. Exécuter des actions en tâche de fond. . . . . . . . . . . . . . . . . . . . . . . . 2432. Développer un service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2563. Communiquer avec un service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2594. Utiliser les récepteurs d’évènement. . . . . . . . . . . . . . . . . . . . . . . . . . 263
4.1 Définir un récepteur d’évènement. . . . . . . . . . . . . . . . . . . . . . . 2634.2 Intention et filtre d’intention . . . . . . . . . . . . . . . . . . . . . . . . . . 2644.3 Inscrire le récepteur d’évènement . . . . . . . . . . . . . . . . . . . . . . . 265
Chapitre 10
Réseau et Internet
1. Présentation de Volley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2671.1 L’application LocDVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2681.2 Intégrer la bibliothèque Volley . . . . . . . . . . . . . . . . . . . . . . . . . 268
![Page 24: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/24.jpg)
6Programmation en Java sous Android Studio
Développez une application Android
2. Interroger un service web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2732.1 Préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2732.2 Demander les permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
2.2.1 Avant Marshmallow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2772.2.2 À partir de Marshmallow. . . . . . . . . . . . . . . . . . . . . . . . . 278
2.3 Interrogation du service web . . . . . . . . . . . . . . . . . . . . . . . . . . . 2783. Travailler avec le format JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
3.1 Interprétation du format JSON. . . . . . . . . . . . . . . . . . . . . . . . . 2863.2 Création de la liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.3 Vue détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.4 Optimisations possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
4. Intégrer un navigateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Chapitre 11
Exploiter le téléphone
1. Envoyer/recevoir des SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3171.1 Envoyer un SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
1.1.1 Gestion des permissions. . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.2 Envoyer un SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
1.2 Recevoir un SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3272. Utiliser les capteurs de l’appareil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3323. Géolocaliser l’utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
3.1 LocationManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3373.2 Location. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Chapitre 12
Sortir de l’application
1. Développer un widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3432. Investir la barre de notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3563. Partager, utiliser les réseaux sociaux . . . . . . . . . . . . . . . . . . . . . . . . . 361
![Page 25: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/25.jpg)
7Table des matières
Chapitre 13
Design avancé
1. Mettre en place un thème, utiliser les styles . . . . . . . . . . . . . . . . . . 3672. Créer des images redimensionnables . . . . . . . . . . . . . . . . . . . . . . . . . 3733. Dessiner en XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3774. Animer les transitions d’écrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Chapitre 14
Images, son et vidéo
1. Prendre une photo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3871.1 Préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3871.2 Implémenter la prise de vue. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3961.3 Sauvegarder le résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
2. Jouer un son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4062.1 Lire un fichier son local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4062.2 Lire un flux sonore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
3. Jouer une vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Chapitre 15
Utilisation du Bluetooth Low Energy
1. Présentation du Bluetooth Low Energy . . . . . . . . . . . . . . . . . . . . . . 4152. Détecter un périphérique BLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
2.1 Préparation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4162.2 Gestion des permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4182.3 Initialisation de BluetoothManager . . . . . . . . . . . . . . . . . . . . . 4212.4 Recherche d’objets Bluetooth Low Energy . . . . . . . . . . . . . . . . 423
2.4.1 Lancer le scan avant Android 21 (Lollipop) . . . . . . . . . . 4232.4.2 Lancer le scan à partir d’Android 21 . . . . . . . . . . . . . . . . 424
2.5 Arrêter l’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4252.6 Exploiter le résultat du scan. . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
3. Connecter un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4334. Lire une caractéristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
![Page 26: Android - Editions ENI · Editions ENI Android Guide de développement d’applications Java pour Smartphones et Tablettes (4e édition) Collection Expert IT Table des matières](https://reader036.vdocuments.pub/reader036/viewer/2022062414/5f0460f77e708231d40daea0/html5/thumbnails/26.jpg)
8Programmation en Java sous Android Studio
Développez une application Android
5. Écrire une caractéristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Chapitre 16
Android 8 Oreo
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4532. Intégrer une nouvelle version d’Android. . . . . . . . . . . . . . . . . . . . . . 4533. Migrer l’application LocDVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
3.1 Détecter les modifications à apporter . . . . . . . . . . . . . . . . . . . . 4573.2 Les notifications sous Android 8 . . . . . . . . . . . . . . . . . . . . . . . . 460
4. Quelques nouveautés d’Android 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 4684.1 Les fonts en XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4684.2 L’autocomplétion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4704.3 Autres modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Chapitre 17
Publier une application
1. Ouvrir un compte développeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4732. Préparer la fiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4773. Publier un APK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4804. Produire plusieurs versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4845. ... Et ensuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4886. Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491