L`art du développement Android - 4e édition

publicité
Table des matières
Préface........................................................... VII
Partie I – Concepts de base............ 1
1. Tour d’horizon....................................... 3
Étape 2 : compilation, installation et exécution
de l’application........................................ 26
Eclipse.................................................. 26
Ligne de commande............................. 27
4. Étude de votre premier projet.............. 31
Avantages et inconvénients
de la programmation des smartphones.... 3
Contenu d’un programme Android . ....... 4
Fonctionnalités à votre disposition ......... 5
Tour d’horizon... de ce livre..................... 6
2. Partir du bon pied.................................. 7
Étape 1 : installation de Java .................. 7
Installation du JDK . ........................... 7
Apprendre Java ................................... 8
Étape 2 : installation du SDK Android ... 9
Installation des outils de base . ........... 9
Installation des SDK et des greffons.... 9
Étape 3 : installation d’ADT pour Eclipse . 13
Étape 4 : installation d’Apache Ant . ...... 14
Étape 5 : configuration de l’émulateur ... 15
Étape 6 : configuration du terminal ........ 19
Structure d’un projet................................ Contenu de la racine............................ À la sueur de votre front ..................... La suite de l’histoire ........................... Le fruit de votre travail ....................... 31
31
32
32
33
Contenu du manifeste.............................. 33
Au début, il y avait la racine................ 34
Application de votre application.......... 35
5. Quelques mots sur Eclipse.................... 37
Présentation d’ADT................................. 37
Travailler avec Eclipse............................. Comment importer un projet non Eclipse .
Utilisation de DDMS........................... Création d’un émulateur . ................... Exécution d’un projet........................... Comment ne pas lancer un projet........ 38
38
41
42
43
43
Windows .............................................. 20
Autres IDE............................................... 44
Mac OS X et Linux .............................. 20
Les IDE et ce livre................................... 44
3. Votre premier projet Android . ............ 23
6. Amélioration de votre premier projet... 45
Étape 1 : création d’un nouveau projet.... 23
Gestion de plusieurs tailles d’écran ........ 45
Eclipse.................................................. 23
Versions d’Android reconnues
par l’application....................................... 46
Ligne de commande............................. 25
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 5
24/10/12 09:18
 
VI
L’art du développement Android
Partie II – Activités......................... 49
7. Réécriture de votre premier projet...... 51
L’activité.................................................. 51
Dissection de l’activité............................ 52
Compiler et lancer l’activité.................... 54
8. Utilisation des layouts XML................. 55
Qu’est-ce qu’un positionnement XML ? . 55
Pourquoi utiliser des layouts XML ? . .... 56
Contenu d’un fichier layout .................... 57
Identifiants des widgets........................... 57
Utilisation des widgets dans le code Java . 58
Fin de l’histoire . ..................................... 58
9. Utilisation des widgets de base............. 61
Labels....................................................... 61
Boutons.................................................... 63
Images . ................................................... 63
Champs de saisie..................................... 64
11.Le framework des méthodes de saisie..... 99
Claviers physiques et logiciels................. 99
Adaptation à vos besoins......................... 100
Dire à Android où aller............................ 104
Mise en place........................................... 106
Enlevez-moi ça !...................................... 107
12.Widgets de sélection............................... 109
S’adapter aux circonstances ................... 109
Listes des bons et des méchants.............. 110
Modes de sélection............................... 112
Contrôle du Spinner . .............................. 114
Mettez vos lions en cage . ....................... 117
Champs : économisez 35 % de la frappe !. 121
Galeries . ................................................. 124
13.S’amuser avec les listes.......................... 125
Premières étapes ..................................... 125
Présentation dynamique . ........................ 127
Inflation des lignes................................... 129
Cases à cocher ........................................ 66
Aparté sur l’inflation............................ 130
Switchs..................................................... 68
Retour aux listes................................... 131
Boutons radio . ........................................ 70
Mieux, plus robuste et plus rapide . ........ 131
Résumé ................................................... 72
Utilisation de convertView................. 132
Remplissage......................................... 72
Autres propriétés utiles ....................... 72
Utilisation du patron de conception "support"....................... 134
Méthodes utiles ................................... 72
Lignes interactives................................... 135
Couleurs............................................... 73
10.Conteneurs.............................................. 75
14 .Encore plus de widgets
et de conteneurs...................................... 141
Penser de façon linéaire : LinearLayout.. 76
Choisir..................................................... 141
Concepts et propriétés ........................ 76
Le temps s’écoule comme un fleuve ...... 146
Exemple . ............................................. 78
Prendre la bonne résolution..................... 147
Le modèle des boîtes............................ 82
Utilisation d’onglets ............................... 148
Tout est relatif : RelativeLayout.............. 84
Les pièces du puzzle . .......................... 148
Concepts et propriétés ........................ 84
Exemple . ............................................. 86
Tout câbler........................................... 149
Ajouts dynamiques............................... 152
Recouvrements de widgets................... 88
Tout faire basculer .................................. 156
Tabula Rasa : TableLayout....................... 89
Fouiller dans les tiroirs............................ 161
Concepts et propriétés ........................ 89
Autres conteneurs intéressants ............... 163
Exemple . ............................................. 91
15.Intégrer le navigateur de WebKit......... 165
Faire défiler : ScrollView . ...................... 92
Un navigateur, et en vitesse !................... 165
Tout placer dans une grille : GridLayout. 95
Chargement immédiat.............................. 167
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 6
24/10/12 09:18
 

Table des matières
VII
Navigation au long cours ........................ 168
Les handlers............................................. 215
Amuser le client . .................................... 169
Les messages . ..................................... 215
Réglages, préférences et options ............ 171
Les runnables . .................................... 218
16.Utilisation des menus............................. 173
Où est passé le thread de mon interface
utilisateur ?.............................................. 218
Variantes des menus................................. 173
Menus d’options ..................................... 174
Menus contextuels .................................. 175
Illustration rapide..................................... 176
Encore de l’inflation ............................... 181
Structure XML d’un menu . ................. 181
Options des menus et XML.................. 182
Création d’un menu par inflation ....... 183
Au pays des géants.................................. 185
17.Affichage de messages surgissants........ 187
Les toasts ................................................ 188
Les alertes ............................................... 188
Mise en œuvre ........................................ 189
18.Gestion des événements du cycle de vie
d’une activité.......................................... 193
L’activité de Schrödinger . ...................... 194
Vie et mort d’une activité ....................... 194
onCreate() et onDestroy() ................... 194
Désynchronisation .................................. 219
La théorie . .......................................... 219
AsyncTask, généricité et paramètres variables . ..................... 220
Les étapes d’AsyncTask ...................... 220
Exemple de tâche................................. 221
Threads et rotations................................. 224
Association manuelle de l’activité....... 225
Flux des événements............................ 228
Fonctionnement.................................... 228
Éviter les pièges....................................... 229
21.Création de filtres d’intentions............. 231
Quelle est votre intention ? ..................... 232
Composantes des intentions . .............. 232
Routage des intentions ........................ 233
Déclarer vos intentions ........................... 233
Récepteurs d’intention............................. 234
onStart(), onRestart() et onStop() ....... 195
Des intentions à chaque occasion............ 235
onPause() et onResume() .................... 195
Attention à la pause ................................ 235
L’état de grâce ........................................ 196
22.Lancement d’activités
et de sous-activités.................................. 237
19.Gestion de la rotation............................ 197
Philosophie de la destruction................... 197
Activités paires et sous-activités . ........... 238
Tout est pareil, juste différent ................. 198
Démarrage............................................... 238
Choisir et consulter un contact............ 199
Création d’une intention ..................... 238
Sauvegarde de l’état............................. 201
Faire appel .......................................... 239
Il n’y a pas de petites économies ! . ........ 204
Navigation avec onglets . ........................ 242
Rotation maison....................................... 206
23.Utilisation des ressources...................... 247
… Mais c’est déconseillé par Google.. 209
Les différents types de ressources........... 247
Forcer le destin ....................................... 210
Théorie des chaînes ................................ 248
Tout comprendre...................................... 212
Chaînes normales ............................... 248
20.Utilisation des threads........................... 213
Formats de chaînes.............................. 248
Le thread principal de l’application......... 213
Texte stylé............................................. 249
Progresser avec les ProgressBar.............. 214
Formats stylés ..................................... 249
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 7
24/10/12 09:18
 
VIII
L’art du développement Android
Vous voulez gagner une image ? ............ 253
Corriger les icônes............................... 291
Les ressources XML................................ 254
Utilisation de l’espace ........................ 292
Valeurs diverses ...................................... 256
Et si ce n’est pas un navigateur ?........ 294
Dimensions ......................................... 257
Couleurs . ............................................ 257
26.Interfaces utilisateurs pour tablettes
et grands écrans .................................... 295
Tableaux .............................................. 258
Pourquoi s’intéresser aux tablettes ?....... 296
Gérer la différence................................... 259
Ce que voit l’utilisateur........................... 296
Écrire dans les deux sens ........................ 263
Gérer les autres terminaux....................... 299
24.Définition et utilisation des styles......... 265
Styles : DRY............................................. 266
Éléments de style..................................... 267
Où appliquer un style . ........................ 267
Attributs disponibles............................ 268
Héritage d’un style............................... 268
Valeurs possibles.................................. 269
Thèmes : un style particulier................... 270
27.Utilisation de la barre d’action............. 303
Activation de la barre d’action................. 303
Éléments de menu dans la barre d’action . 304
Répondre au logo..................................... 305
Ajout de vues personnalisées
à la barre d’action.................................... 306
Définition du layout............................. 306
Placement du layout dans le menu...... 308
Contrôle du clavier.............................. 308
Partie III – Honeycomb et tablettes. 271
N’oubliez pas les téléphones !................. 310
25.Gestion des différentes tailles d’écran. 273
28.Fragments............................................... 311
Écran par défaut....................................... 274
Tout en un................................................ 275
Penser en termes de règles, pas en termes de positions .................. 275
Utiliser des dimensions physiques ...... 276
Éviter les "vrais" pixels ...................... 276
Choisir des images adaptables ........... 276
Fait maison, rien que pour vous... . ......... 277
Introduction aux fragments...................... 311
Le problème résolu par les fragments.. 312
La solution des fragments.................... 312
La bibliothèque de compatibilité (ACL). 313
Création des classes fragments ............... 314
Fragments généraux............................. 314
ListFragment........................................ 315
<supports-screens> ............................ 277
Autres classes Fragment de base......... 320
Ressources et ensembles de ressources . 278
Fragments, layouts, activités et tailles
d’écrans.................................................... 320
Trouver sa taille .................................. 279
Rien ne vaut la réalité.............................. 280
EU4YOU................................................. 322
Différences de densité.......................... 280
DetailsActivity...................................... 325
Ajustement de la densité...................... 280
Fragments et changements
de configuration....................................... 326
Exploitez sans vergogne la situation ...... 281
Remplacer les menus par des boutons . 282
Concevoir en utilisant les fragments........ 327
Remplacer les onglets par une seule activité .......................... 282
29.Gestion des changements
de plates-formes..................................... 329
Consolider les activités multiples........ 282
Exemple : EU4You ................................. 283
Des choses qui risquent de vous rendre
nerveux.................................................... 329
Première version ................................. 283
Hiérarchie des vues.............................. 330
Corriger les polices............................. 289
Changement des ressources................. 330
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 8
24/10/12 09:18
 

Table des matières
IX
La jungle des versions.......................... 331
32.Accès et gestion des bases de données
locales...................................................... 375
Détecter la version d’Android.............. 332
Présentation rapide de SQLite ................ 377
Envelopper l’API ................................ 333
Commencer par le début . ....................... 377
Patrons pour Ice Cream Sandwich
et Honeycomb.......................................... 334
Mettre la table . ....................................... 380
La barre d’action................................. 335
Le retour de vos requêtes......................... 382
Gestion des modifications de l’API ........ 330
Isolation du code Ice Cream Sandwich/
Honeycomb.......................................... 336
Applications uniquement destinées aux
tablettes................................................ 337
Partie IV – Dépôts de données,
services réseaux et API................... 339
30.Accès aux fichiers................................... 341
Allons-y !................................................. 341
Lire et écrire............................................. 345
Stockage externe : un gain
de place énorme....................................... 349
Où écrire.............................................. 349
Quand écrire........................................ 350
StrictMode : éviter le code poussif ......... 350
Mise en œuvre de StrictMode............... 351
StrictMode en action............................ 351
Ajouter des données ............................... 381
Requêtes brutes ................................... 382
Requêtes normales .............................. 383
Utilisation des curseurs ...................... 383
CursorAdapter personnalisés.............. 384
Créer ses propres curseurs................... 385
SQLite et versions d’Android............... 385
Flash semble plus rapide qu’il ne l’est ... 386
Embarquer votre base.............................. 386
Des données, des données,
encore des données.................................. 387
33.Tirer le meilleur parti des bibliothèques
Java......................................................... 389
Ant et JAR .............................................. 389
Limites extérieures ................................. 390
Suivre le script ........................................ 391
Autres langages de scripts....................... 394
Uniquement pour le développement,
merci ! ................................................. 352
34.Communiquer via Internet................... 397
Savoir être strict dans certains cas ..... 352
Opérations HTTP via HttpClient . ... 398
Systèmes de fichier Linux : la victoire de
sync et vous gagnez ................................ 354
Traitement des réponses . .................... 399
31.Utilisation des préférences.................... 357
Obtenir ce que vous voulez .................... 357
Tirer parti des composants Android
pour Internet............................................ 402
Définir vos préférences ........................... 358
Téléchargement de fichiers................... 403
PreferenceFragment et PreferenceActivity.. 358
Suite de la lutte contre le code poussif ... 412
REST et relaxation ................................. 397
Autres points importants ..................... 401
Préférences avec les fragments................ 359
La nouvelle approche pour les préférences............................. 360
Ajouter la compatibilité ascendante.... 363
Partie V – Services.......................... 413
35.Théorie des services............................... 415
L’ancien modèle de gestion des préférences..................................... 364
Pourquoi les services ?............................ 416
Laisser les utilisateurs choisir . ............... 365
La classe Service.................................. 416
Ajouter un peu de structure..................... 369
Méthodes du cycle de vie..................... 416
Boîtes de dialogue................................... 371
Entrée du manifeste.............................. 417
Mise en place d’un service...................... 416
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 9
24/10/12 09:18
 
X
L’art du développement Android
Communiquer avec les services............... 418
Imposer les permissions via le manifeste . 461
Envoi de commandes avec startService()................................. 418
Papiers, s’il vous plaît !........................... 462
Liaison avec bindService().............. 419
Imposer les permissions ailleurs ........ 462
Communication à partir des services....... 420
Nouvelles permissions avec les anciennes
applications.............................................. 463
Fonctions de rappel/écouteurs............. 420
Permissions : tout ou rien ....................... 463
Intentions diffusées.............................. 420
Résultats en attente.............................. 421
39.Accès aux services de localisation......... 465
Messenger............................................ 421
Fournisseurs de localisation : ils savent
où vous vous cachez................................ 466
Notifications......................................... 421
Où suis-je ?.............................................. 466
36.Patrons de base pour les services.......... 423
Se déplacer . ............................................ 467
Downloader.............................................. 423
Est-on déjà arrivé ? Est-on déjà arrivé ? . 469
Conception........................................... 424
Tester... Tester... ...................................... 469
Implémentation du service................... 424
Utilisation du service........................... 427
40.Cartographie avec MapView
et MapActivity....................................... 471
Lecteur musical........................................ 428
Termes d’utilisation................................. 472
Conception........................................... 429
Empilements ........................................... 472
Implémentation du service................... 429
La clé de tout........................................... 472
Utilisation du service........................... 430
Les composants essentiels....................... 473
Cartes optionnelles.............................. 475
L’interface de service web....................... 432
Conception........................................... 432
Le problème de la rotation................... 432
Implémentation du service................... 433
Utilisation du service........................... 438
Testez votre contrôle................................ 476
Zoom ................................................... 476
Centrage............................................... 476
Configuration des notifications . ............. 445
Couches sur couches . ............................. 476
Classes Overlay.................................. 477
Affichage d’ItemizedOverlay ........... 477
Gestion de l’écran tactile . .................. 479
Notifications matérielles ..................... 446
Moi et MyLocationOverlay . ................. 479
Icônes .................................................. 447
Terrain accidenté...................................... 480
Les notifications en action ...................... 448
Cartes et fragments.................................. 481
Limitez-vous aux dernières versions d’Android............................................. 482
Utilisez onCreateView()
et onActivityCreated().................... 483
Hébergement du fragment dans une MapActivity........................ 484
Alternative aux cartes et aux fragments. 485
37.Alerter les utilisateurs
avec des notifications............................. 445
Rester au premier plan............................. 451
FakePlayer revisité............................... 452
Notifications avec Ice Cream Sandwich
et Honeycomb.......................................... 453
Partie VI – Autres fonctionnalités
d’Android......................................... 457
41.Gestion des appels téléphoniques......... 487
38.Demander et exiger des permissions.... 459
Le Manager . ........................................... 488
Maman, puis-je ? .................................... 460
Appeler ................................................... 488
Halte ! Qui va là ? . ................................. 460
C’est vous qui téléphonez ! .................... 491
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 10
24/10/12 09:18
 

Table des matières
XI
42.Polices de caractères.............................. 493
Problèmes éventuels................................ 530
Sachez apprécier ce que vous avez ......... 493
Versions des terminaux........................ 530
Polices supplémentaires........................... 495
Tailles et densités des écrans .............. 531
Le problème des glyphes......................... 497
Intégration limitée................................ 531
43.Outils de développement
supplémentaires..................................... 499
Hierarchy Viewer .................................... 499
DDMS (Dalvik Debug Monitor Service). 503
Journaux ............................................. 504
Performances et batterie...................... 531
Look and Feel....................................... 532
Distribution.......................................... 532
Modifications du navigateur depuis
Ice Cream Sandwich................................ 532
Stockage et extraction de fichiers......... 505
HTML5 et les navigateurs
Android alternatifs................................... 533
Copies d’écran .................................... 506
HTML5 : un autre point de référence...... 533
Mise à jour de la position ................... 507
Appels téléphoniques et SMS .............. 507
Gestion de la mémoire......................... 510
adb : comme DDMS, mais au clavier . ... 511
Devenir graphiste..................................... 512
Partie VII – Environnements
alternatifs......................................... 515
46.PhoneGap............................................... 535
Qu’est-ce que PhoneGap ?...................... 535
Comment s’y prendre ? ....................... 536
Fonctionnalités..................................... 536
Aspect des applications........................ 537
Distribution des applications . ............ 537
Et les autres plates-formes ? . ............. 537
Utilisation de PhoneGap.......................... 538
44.Rôle des environnements alternatifs.... 517
Installation........................................... 538
Au début, il y avait Java... . ..................... 518
Création et installation d’un projet...... 538
…Et ils virent que cela était bon............. 518
PhoneGap Build................................... 539
Ne pas suivre la mode . ........................... 519
PhoneGap et l’exemple Checklist............ 542
Support, structure..................................... 519
Respect des standards.......................... 542
Soyez prudent.......................................... 519
Ajouter les API de PhoneGap.............. 545
45.HTML5................................................... 521
Problèmes éventuels ............................... 548
Applications déconnectées...................... 521
Explications ........................................ 522
Utilisation............................................ 522
Web Storage............................................. 526
Sécurité................................................ 548
Tailles et densités des écrans............... 549
Look and Feel....................................... 550
Pour en savoir plus................................... 550
Explications......................................... 527
47.Autres environnements alternatifs....... 551
Utilisation............................................ 527
Rhodes..................................................... 551
Base de données SQL web .................. 529
Flash, Flex et AIR.................................... 552
Mise en production.................................. 529
JRuby et Ruboto...................................... 552
Tests...................................................... 529
Mono pour Android................................. 553
Signature et distribution....................... 530
Titanium Mobile...................................... 553
Mises à jour......................................... 530
Autres langages compilés pour la JVM... 553
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 11
24/10/12 09:18
 
XII
L’art du développement Android
Partie VIII – L’évolution constante
d’Android......................................... 555
Demander implicitement certaines caractéristiques.................... 559
Un marché garanti .................................. 560
48.Gestion des terminaux........................... 557
Autres différences.................................... 560
Cette application contient des instructions
Bogues, bogues, bogues........................... 560
explicites ................................................. 557
Test des terminaux................................... 561
Demander des caractéristiques précises. 558
Index.............................................................. 563
© 2012 Pearson France – L'art du développement Android, 4e édition – Grant Allen
LIVRE-2557-Android 4.indb 12
24/10/12 09:18
Téléchargement