Android, A Quick Course
Auteur :Mathias Seguy
Co-Auteur (Graphiste):Yannick Bergès
Nombre de pages: 200 pages
Publication Date: 15/04/2011
Published by http://com3elles.com/android2ee-dev
Titre original: Android, A Quick Course. Version Française.
ISBN : 979-10-90388-01-7
Copyright © 2011 by Mathias Séguy
Le nouveau système d’exploitation de Google pour les téléphones portables et les nouvelles tablettes est là. Sa réputation est solide, il envahit le monde de la téléphonie, il est ouvert et offre des outils de développement Java au monde des programmeurs. Il ouvre les portes du développement mobile à tous les développeurs objets avec un coût minime pour la montée en compétence. Une seule question se pose :
Êtes-vous prêts ?
Objectifs de ouvrage
L’objectif de ce livre est très clair : vous permettre en un temps record d’être autonome en programmation Android. Si vous êtes un programmeur Java (débutant ou confirmé), le but est que vous soyez autonomes en moins de 10 jours. C’est cet objectif qui est l’origine de ce livre, permettre aux collaborateurs de mon entreprise de monter en compétence sur cette technologie avec rapidité et efficience. Vous serez alors à même de concevoir une application, de l’implémenter, de la tester, de l’internationaliser et de la livrer à votre client.
Cet ouvrage axe sa réflexion sur deux choses qui sont primordiales :
- le savoir faire
- le savoir concevoir
Concernant le savoir faire, celui-ci est acquis au travers de projets Android dont le code est
- épuré de toute considération fonctionnelle,
- extrêmement précis (un projet pour une combo-box, un projet pour un web kit, un projet pour … qui n’explique que le concept associé à l’exemple,
- très commenté et très clair.
Un paragraphe explique les points clefs de compréhension, le code termine l’explication détaillée du concept. Ce savoir-faire vous permettra de mettre en place toutes les problématiques qui se posent à vous. Mais comme tout, parfois, sur des sujets complexes qui mériteraient un ouvrage pour eux seuls, nous ne donnons que les points d’entrée car il serait trop long de tout réexpliquer, vous laissant continuer l’exploration seuls.
Concernant le savoir-concevoir, ce livre explique les points clefs de la structuration d’une application Android. Il vous présente les éléments qui forment la voute du système et vous explique comment construire une application qui respecte ces principes et en tire partie de la manière la plus efficace possible. Chacun des ces concepts est mis en évidence par un projet Android dont le code a pour unique vocation de présenter le plus clairement possible ce dit concept.
Concernant la lecture de ce livre, il m’apparaît plus raisonnable d’effectuer une première lecture rapide, sans s’appesantir sur chaque concept, de manière à posséder une vision globale sur la programmation Android. Ensuite, le lecteur se référera aux chapitres précis qui l’intéresse et dont il souhaite mettre le concept en pratique. La vision globale lui permettant d’avoir en tête l’ensemble des considérations qu’une application Android doit prendre en compte, il pourra alors acquérir son savoir faire sur des exemples précis et récupérer le code fourni pour le mettre en place. Quand sa montée en compétence sera effective, ce livre restera à ses côtés lors des développements d’applications, lui servant de référence, tant pour le code que pour les concepts associés.
Audience
Ce livre se scinde en quatre parties distinctes.
Une première partie est destinée aux développeurs et leur permet d’effectuer rapidement des applications avec les éléments graphiques. Cette partie décrit et explique comment utiliser ces composants et structurer son application. On y trouve donc la description des composants usuels, la gestion du clavier, la gestion des menus, la manipulation des polices de caractère, le navigateur web Kit et enfin les messages surgissants. Cette partie permet d’effectuer les développements dont la plupart des développeurs ont envie et besoin : les IHMs.
Une seconde partie étant plus destinée aux développeurs / concepteurs / architectes, elle explique comment :
- Gérer les traitements associés aux activités (avec la mise en place de threads).
- Gérer le cycle de vie d’une activité.
- Utiliser le système évènementiel d’Android avec les Intentions.
- Comment gérer ses ressources (fichiers images, texte, couleurs, thèmes).
- Comment définir et utiliser une base de données.
- Comment utiliser et définir un ContentReceiver et son homologue, le ContentProvider.
- Comment utiliser et définir un service.
Cette seconde partie est orientée développement dans le milieu de l’entreprise. Elle s’intéresse à expliquer comment structurer une application Android, à respecter les contraintes d’un tel projet.
La troisième partie se focalise sur le « comment faire pour » :
- Communiquer avec internet.
- Utiliser le protocole http pour faire transiter des objets entre un serveur de servlets et votre application.
- Utiliser d’autres services et donc demander des permissions.
- Utiliser la géolocalisation et le géocodage.
- Gérer les SMS et effectuer des appels téléphoniques.
- Utiliser les fichiers multimédia.
- Utiliser et gérer le Bluetooth, les réseaux et le wifi.
- Et enfin comment dialoguer avec les capteurs.
Cette dernière partie est donc plus orienté sur comment communiquer avec le système. Elle s’adresse à des développeurs/concepteurs/architectes qui ont besoin d’utiliser des services déjà existant de la plateforme.
La dernière partie est orientée cycle de vie d’une application Android, elle explique comment :
- Mettre en place l’espace de développement
- Signer votre application et retrouver votre clef pour utiliser le service MapView
Tout d’abord, le développeur amateur trouvera son bonheur au travers d’exemples et d’explications simples qui lui permettront de mettre en place rapidement ses premières applications. La première partie de ce livre explique comment mettre en place des écrans pour Android. La plupart des développeurs amateurs auront à coeur d’approfondir cette partie et de devenir un programmeur graphique efficient. Ils pourront alors, au travers d’exemple de code, greffer à leurs IHMs des composants spécifiques et ainsi enrichir leurs applications rapidement et à moindre effort. Ces composants sont :
- Internet
- Utilisation du bus HTTP
- Utilisation de MapView
- Utilisation de GeoCoder
- Effectuer des appels téléphoniques
- Envoyer Recevoir des SMS
- Lire un fichier Audio
- Lire/Enregistrer une Vidéo, une Photo
- Utiliser le Bluetooth
- Gérer les connections Réseau (GPRS, 3G, wifi)
- Dialoguer avec les capteurs: Accéléromètre, Boussole, Champ magnétique, température,…
Le second type de lecteur est le développeur objet qui au sein d’un projet d’entreprise aura besoin de rapidement comprendre l’ensemble de la structure d’une application Android, de construire des IHMs, des services, d’utiliser les bases de données et d’en implémenter, de mettre en place des bus de communication http, de gérer les ressources et leur internationalisation,…Il aura une vision claire et concise de l’ensemble du système et pourra rapidement mettre en place chacun des composants qui lui sont demandés dans le respect des règles de codage Android et surtout de sa philosophie. Cet ouvrage permet d’avoir l’ensemble des réponses aux préoccupations liées aux applications d’entreprise :
- La gestion du clavier
- La gestion des polices de caractère
- La gestion des threads
- La gestion des évènements du cycle de vie
- La gestion des intentions (Intents) et des filtres d’intentions
- La gestion des permissions
- La gestion des ressources:
- Fichiers de ressources (l’internationalisation et l’arbre de devices), les styles, les thèmes,…
- Fichiers externes et fichiers internes
- L es préférences
- La gestion de base de données SQLite
- Les tests et l’industrialisation du développement
Le dernier type de lecteur est l’architecte, le concepteur ou l’avant vente. Celui-ci aura une vision globale du système et saura agencer les composants entre eux. Au travers de l’ouvrage, il se construira une vision de haut niveau du système qui lui permettra de définir l’architecture de nouvelles applications Android, de connaitre l’ensemble des services disponibles de la plateforme et d’associer un chiffrage à ses oeuvres.
Par contre quelque soit la catégorie de lecteur dans laquelle vous vous placez, il est préférable que vous ayez un minimum de connaissance sur les deux sujets suivants :
- Programmation objet, la connaissance de Java étant un plus.
- Utilisation d’Eclipse (installation, mise en place d’un espace de travail,….
Si vous n’avez aucune connaissance sur ces deux sujets et que vous êtes vraiment motivés par la programmation Android, ce livre est aussi pour vous. Vous pourrez commencer à montée en compétence sur ces sujets, mais cela vous demandera plus de travail et d’effort. Par contre quel plaisir cela sera de voir votre première application sur l’AndroidStore ou tout simplement sur votre téléphone portable.
Sommaire
Android, A Quick Course. ........................................................................................................................ 6
1 Introduction .............................................................................................................................................. 9
1.1 Audience ............................................................................................................................................. 10
1.2 Contenu .............................................................................................................................................. 11
1.3 Structure de l’ouvrage ...................................................................................................................... 12
1.4 Convention ......................................................................................................................................... 13
1.5 Votre espace de travail .................................................................................................................... 13
1.6 Codes sources et exemples. ......................................................................................................... 13
Graphic Users Interfaces ..................................................................................................................... 14
2 Notions fondamentales ...................................................................................................................... 14
2.1 Une application Android................................................................................................................... 14
2.2 La structure d’un projet .................................................................................................................... 15
3 Les IHMs des Activités ........................................................................................................................ 16
3.1 Utilisation des layouts XML ............................................................................................................. 16
3.2 Les conteneurs ................................................................................................................................. 17
3.3 Les widgets élémentaires .............................................................................................................. 18
3.4 Les widgets de sélections .............................................................................................................. 22
3.5 Les conteneurs et widgets évolués .............................................................................................. 26
3.6 Méthodes de saisie : Clavier physique ou logiciel ..................................................................... 36
3.7 Les menus ......................................................................................................................................... 38
3.8 Polices de caractère ........................................................................................................................ 44
3.9 Intégrer le navigateur WebKit à une activité : le widget WebView ........................................... 45
3.10 Messages surgissants : Toast et AlertDialog .......................................................................... 46
4 Le fichier manifest.xml et le fichier des layouts ............................................................................. 47
4.1 Le fichier des layouts ...................................................................................................................... 47
Le coeur du système ............................................................................................................................ 48
5 Gérer les activités ................................................................................................................................ 48
5.1 Les Threads ...................................................................................................................................... 48
5.2 Gestion des évènements du cycle de vie d’une activité ........................................................... 54
5.3 Filtres d’intentions ............................................................................................................................ 57
5.4 La rotation .......................................................................................................................................... 69
6 Les ressources .................................................................................................................................... 69
6.1 Fichiers de ressources ................................................................................................................... 69
6.2 Gestion des préférences ................................................................................................................ 80
6.3 Bases de données locales ............................................................................................................ 83
6.4 Les fichiers ........................................................................................................................................ 98
7 Mon application est un ContentProvider (fournisseur de contenu) ......................................... 103
7.1 Utilisation d’un ContentProvider ................................................................................................. 103
7.2 Définition d’un ContentProvider .................................................................................................. 109
8 Mon application est un Service ...................................................................................................... 119
8.1 Utilisation d’un service ................................................................................................................. 120
8.2 Création d’un service .................................................................................................................... 122
9 Le fichier manifest.xml ..................................................................................................................... 124
Communiquer avec le système ....................................................................................................... 127
10 Communiquer avec l’extérieur de l’activité ................................................................................ 127
10.1 Internet ........................................................................................................................................... 127
10.2 Les permissions ......................................................................................................................... 137
10.3 La géo-localisation ..................................................................................................................... 139
10.4 MapView et MapActivity ............................................................................................................... 143
10.5 Gestion des appels téléphoniques et des SMS.................................................................... 148
10.6 Les fichiers Multimédia et l’appareil photo............................................................................. 155
10.7 Gérer le Bluetooth, les réseaux et le wifi ................................................................................ 159
10.8 Dialoguer avec les capteurs ..................................................................................................... 180
Cycle de vie d’un projet Android ...................................................................................................... 187
11 Installer l’espace de travail ........................................................................................................... 187
11.1 Téléchargements ........................................................................................................................ 187
11.2 Mise en place d’Eclipse ............................................................................................................. 188
Table des matières exhaustive ........................................................................................................ 191
Bibliographie.......................................................................................................................................... 199
12 Livres ................................................................................................................................................. 199
13 Référence internet: ......................................................................................................................... 199
Remarque
Cet ouvrage est la première partie du livre "Android, A Complete Course, From Basics to Enterprise Edition". Il est dédié à la programmation Android pure et ne se préoccupe pas au cycle de vie de l'application. Il vous permet de devenir autonome et efficient dans le développement d'application Android.