sans compter sur l'arrivée de nouveaux constructeurs. Aujourd'hui, le portail de vente de Google dédié aux applications Android (Android Market) dispose d'environ 7 000 applications (alors même qu'il n'est toujours pas disponible sur tous les continents). Enfin, plus d'une vingtaine d'appareils équipés d'Android sont attendus avant la fin de l'année 2009 (Sony, Samsung, Motorola, HTC...), et davantage encore en 2010.
1. Tour d'horizon ................................... 5 2. Structure d'un projet ......................... 9 3. Contenu du manifeste ........................ 13 Partie II - Les activités .......................... 19
4. Création d'un squelette d'application 21 5. Utilisation des layouts XML ............. 29 6. Utilisation des widgets de base ......... 35 7. Conteneurs ......................................... 45 8. Widgets de sélection ........................... 65 9. S'amuser avec les listes ...................... 83 10. Utiliser de jolis widgets et de beaux conteneurs .................... 107 11. Utilisation des menus ....................... 129 12. Polices de caractères ........................ 141 13. Intégrer le navigateur de WebKit ... 147 14. Affichage de messages surgissant ... 155 15. Utilisation des threads ..................... 161 16. Gestion des événements du cycle de vie d'une activité ........................ 173 Partie III - Stockage de données, services réseaux et API .......................... 177 17. Utilisation des préférences .............. 179 18. Accès aux fichiers ............................ 191 19. Utilisation des ressources ................ 199 20. Accès et gestion des bases de données locales ........................... 217 21. Tirer le meilleur parti des bibliothèques Java .................... 227 22. Communiquer via Internet ............. 235 Partie IV -Intentions (Intents) ............. 241 23. Création de filtres d'intentions ....... 243 24. Lancement d'activités et de sous-activités ........................... 249 25. Trouver les actions possibles grâce à l'introspection ............................... 259 26. Gestion de la rotation ...................... 265
IV L'art du développement Android Partie V - Fournisseurs de contenus et services .......................... 277 27. Utilisation d'un fournisseur de contenu (content provider) ......... 279 28. Construction d'un fournisseur de contenu ........................................ 287 29. Demander et exiger des permissions 297 30. Création d'un service ...................... 303 31. Appel d'un service ........................... 309 32. Alerter les utilisateurs avec des notifications ...................... 313
Partie VI - Autres fonctionnalités d'Android ............................................... 319 33. Accès aux services de localisation ... 321 34. Cartographie avec MapView et MapActivity ................................. 327 35. Gestion des appels téléphoniques ... 337 36. Recherches avec SearchManager ... 341 37. Outils de développement ................. 351 38. Pour aller plus loin .......................... 363 Index ....................................................... 367
Table des matières
Introduction ............................................ 1 Bienvenue ! ......................................... 1 Prérequis ............................................. 1 Éditions de ce livre ............................. 2 Termes d'utilisation du code source ... 2
Partie I - Concepts de base ................... 3
1. Tour d'horizon ................................... 5 Contenu d'un programme Android ..... 6 Fonctionnalités à votre disposition ..... 8
2. Structure d'un projet ......................... 9 Contenu de la racine .......................... 9 À la sueur de votre front ..................... 10 La suite de l'histoire ........................... 11 Le fruit de votre travail ....................... 11
3. Contenu du manifeste ........................ 13 Au début, il y avait la racine ............... 14 Permissions, instrumentations et applications ..................................... 14 Que fait votre application ? ................. 15 Faire le minimum ................................ 16 Version = contrôle ............................... 17
Partie II - Les activités ......................... 19
4. Création d'un squelette d'application 21 Terminaux virtuels et cibles ............... 21 Commencer par le début ..................... 23 L'activité ............................................. 24 Dissection de l'activité ....................... 25 Compiler et lancer l'activité ............... 27
5. Utilisation des layouts XML ............. 29 Qu'est-ce qu'un positionnement XML ? 29 Pourquoi utiliser des layouts XML ? .. 30 Contenu d'un fichier layout ................ 31 Identifiants des widgets ...................... 32 Utilisation des widgets dans le code Java ................................ 32 Fin de l'histoire .................................. 33
6. Utilisation des widgets de base ......... 35 Labels ................................................. 35 Boutons ............................................... 36 Images ................................................ 37 Champs de saisie ................................ 38 Cases à cocher .................................... 40 Boutons radio ..................................... 42 Résumé ............................................... 43
VI L'art du développement Android
7. Conteneurs ......................................... 45 Penser de façon linéaire ..................... 46 Tout est relatif .................................... 52 Tabula Rasa ........................................ 57 ScrollView .......................................... 61
8. Widgets de sélection .......................... 65 S'adapter aux circonstances ............... 66 Listes des bons et des méchants ......... 67 Contrôle du Spinner ......................... 71 Mettez vos lions en cage .................... 73 Champs : économisez 35 % de la frappe ! 77 Galeries .............................................. 81
9. S'amuser avec les listes ..................... 83 Premières étapes ................................. 83 Présentation dynamique ..................... 85 Mieux, plus robuste et plus rapide ..... 88 Créer une liste... ................................. 94 ... Et la vérifier deux fois ................... 99 Adapter d'autres adaptateurs .............. 105
10. Utiliser de jolis widgets et de beaux conteneurs .................... 107 Choisir ................................................ 107 Le temps s'écoule comme un fleuve .. 111 Mesurer la progression ....................... 112 Utilisation d'onglets ........................... 113 Tout faire basculer .............................. 120 Fouiller dans les tiroirs ....................... 125 Autres conteneurs intéressants ........... 128
Accédez gratuitement au plan de ce document en vous connectant.
Extraits
[...] Dans l'exemple précédent, le contenu, dont nous ne savions rien, provenait d'une autre application Android. Ceci dit, nous pouvons aussi savoir parfaitement quel est ce contenu, lorsque c'est le nôtre. Cependant, les applications Android étant tout à fait capables d'ajouter de nouvelles actions à des types de contenus existants, les utilisateurs auront peut-être d'autres possibilités que l'on ne connaît pas encore, même si l'on écrit une application en s'attendant à un certain traitement du contenu. Revenons, par exemple, au sous-système de marquage évoqué au début de ce chapitre. [...]
[...] Un String[] contenant les valeurs qui remplaceront les éventuels marqueurs d'emplacements dans le paramètre précédent . Un String équivalant à une clause ORDER BY de SQL. C'est vous qui êtes responsable de l'interprétation de ces paramètres et vous devez renvoyer un Cursor qui pourra ensuite être parcouru pour accéder aux données. Comme vous pouvez vous en douter, ces paramètres sont fortement orientés vers l'utilisation de SQLite comme moyen de stockage. Vous pouvez en ignorer certains (la clause WHERE, par exemple) mais vous devez alors l'indiquer pour que les activités ne vous interrogent que par une Uri d'instance et n'utilisent pas les paramètres que vous ne gérez pas. [...]
[...] En outre, vous pouvez agir comme suit : . Filtrer les entrées du journal selon l'un des cinq niveaux représentés par les boutons E à V dans la barre d'outils . Créer un filtre personnalisé pour ne voir que les entrées correspondantes. Pour ce faire, cliquez sur le bouton + et remplissez le formulaire : le nom que vous choisirez pour ce filtre sera utilisé pour nommer un autre onglet qui apparaîtra à côté du contenu du journal (voir Figure 37.9 ) . [...]
[...] Cela permet d'éviter qu'un contenu trop long pousse certaines colonnes à droite de l'écran. Vous pouvez également tirer parti de la propriété android:collapseColumns de Table- Layout, en indiquant là aussi un numéro ou une liste de numéros de colonnes. Celles-ci seront alors initialement "refermées", ce qui signifie qu'elles n'apparaîtront pas, bien qu'elles fassent partie du tableau. À partir de votre programme, vous pouvez refermer ou réouvrir les colonnes à l'aide de la méthode setColumnCollapsed()du widget Table- Layout. Ceci permet aux utilisateurs de contrôler les colonnes importantes qui doivent apparaître et celles qui peuvent être cachées car elles ne leur sont pas utiles. [...]
[...] Contenu d'un fichier layout Voici le bouton de l'application du chapitre précédent, converti en un fichier XML que vous trouverez dans le répertoire chap5/Layouts/NowRedux de l'archive des codes sources, téléchargeable sur le site www.pearson.fr, sur la page dédiée à cet ouvrage. Pour faciliter la recherche des codes des exemples, cette archive est découpée selon les chapitres du livre. Ici, le nom de l'élément XML est celui de la classe du widget, Button. Ce dernier étant fourni par Android, il suffit d'utiliser simplement son nom de classe. [...]