I. Notions fondamentales▲
Avant d'expliquer les interfaces graphiques, nous présentons de manière succincte les notions fondamentales d'une application Android.
I-A. Une application Android▲
Avant tout, il faut avoir en tête le principe de base de la programmation Android et ses composants principaux. Il y a quatre types d'éléments distincts :
- les activités (activities) : ce sont les programmes qui sont une activité pour l'utilisateur. Ils possèdent donc un GUI ;
- les fournisseurs de contenus (content provider) : ils offrent un niveau d'abstraction pour l'accès à toutes les données stockées sur le terminal. Il est encouragé d'ouvrir ces données aux autres applications. Les données sont identifiées au moyen d'URI (Unified Ressources Identifier) ;
- les services : ils ont une durée de vie infinie (contrairement aux activités et aux fournisseurs de données). Il faut les voir comme des démons qui tournent en tâche de fond ;
- les intentions (intents) : Ce sont des messages systèmes qui servent de support événementiel pour permettre le dialogue entre applications. On répond et on envoie des intentions qui lancent ou communiquent avec les activités.

Une activité envoie des intentions au système qui identifie l'activité associée et soit la lance (startActivity), soit lui parle au moyen du BroadCastReceiver. Un BroadCastReceiver est une interface qui est implémentée par l'activité écoutante.
Une activité se lie à un service par la méthode Bind et soit interagit directement avec les méthodes du service, soit écoute les évènements envoyés par celui-ci.
Une activité peut demander, via un ContentResolver, au système d'effectuer une action CRUD sur des données identifiées par une URI. Le système trouve le ContentProvider qui gère ses données et lui demande d'effectuer l'action demandée. Le résultat de l'action est renvoyé à l'activité. Un service peut aussi utiliser ce mécanisme pour effectuer des actions CRUD sur des données.
I-B. La structure d'un projet▲
Un projet possède la structure normalisée. Il y a deux types de fichiers, ceux que vous utilisez tout le temps, et ceux qui ne sont là que pour la compilation et le déploiement.
Les fichiers utilisés en permanence sont :
- le manifeste (AndroidManifest.xml) qui décrit l'application à construire et ses composants ;
le dossier res (pour ressources) qui contient les ressources du projet (les layouts, les chaînes de caractères, les images, les fichiers internes, les fichiers XML, les couleurs et thèmes) dont les sous-dossiers sont :
- Drawable (pour les images, usuellement vous trouverez trois dossiers, un par qualité haute, moyenne, faible),
- Layout (pour la définition des différents fichiers de layouts des activités qui déclarent et positionnent les composants graphiques),
- Values (pour les chaînes de caractères, les couleurs, les thèmes, les préférences…),
- Raw (pour les fichiers),
- XML (pour les fichiers XML) ;
- le dossier src pour les sources ;
et enfin le dossier test pour les tests.
Les fichiers utilisés pour la compilation et le déploiement sont :
le fichier de build ant (build.xml) qui construit le projet ou son homologue maven ;
les fichiers properties default et local qui sont utilisés par le build ;
le dossier asset contient des fichiers pour le déploiement ;
le dossier bin (pour binaries) qui contient les classes compilées ;
le dossier gen (pour generated) qui contient le code source généré par les outils de compilation Android ;
- le dossier libs (pour librairies) qui contient les librairies.
Le fichier manifeste est un élément clef du projet, il définit :
- votre projet et sera interprété par le système et l'AndroidStore ;
- les dépendances systèmes de votre projet (par exemple : la version du système, les instruments nécessaires, la géolocalisation) ;
- la version de votre projet (un nom de version name et un numéro de version (un Int)) ;
- les différents composants de votre application (Activity, Service, ContentProvider).
Comme Android a pour vocation de lancer votre application sur un ensemble d'appareils distincts, il est préconisé que vous mettiez en place l'arbre suivant au niveau de vos ressources :
- layout ;
- layout-small ;
- layout-normal ;
- layout-large ;
- layout-xlarge ;
- drawable ;
- drawable-ldpi ;
- drawable-mdpi ;
- drawable-hdpi ;
- values ;
- values-fr || values-en (si vos strings par défaut sont en anglais, mettez values-fr, sinon values-en).
Cet arbre vous permet d'avoir les layouts par défaut puis ceux spécifiques à chaque taille d'écran, vos images par défaut puis celles spécifiques à chaque densité d'écran et enfin vos chaînes de caractères par défaut puis celles anglaises (ou françaises si par défaut vos chaînes sont anglaises).
Il faut toujours mettre le dossier par défaut, car personne ne sait si lors de futures versions d'Android de nouveaux paramètres n'apparaîtront pas (xlarge est apparu à la version 9 du système).
I-C. Exemple d'application▲
Pour donner vie à ces propos, voici un exemple typique de structure de projet que nous pouvons avoir sous Android, une application permettant d'écouter des médias audio et/ou vidéo présents sur le téléphone :

Cette application est représentée :
par trois activités qui sont :
- WelcomeActivity : la page d'accueil de votre application,
- BrowseActivity : la page vous permettant d'afficher les médias présents,
- PlayerActivity : celle qui lira le média demandé ;
par un service :
- PlayserService : le service tournant en tâche de fond lisant le flux du média, ce qui nous permettra de ne pas être dépendant du thread UI ;
par un BroadCast :
- BroadCastReceiver : il nous permet de pouvoir échanger des informations entre le Service « PlayerService » et l'Activity « PlayerActivity » ;
et enfin par un ContentProvider :
- MediaStore : nous permet de pouvoir récupérer les informations sur les médias présents sur le téléphone .
II. Android2EE: La Formation et l'Expertise Android à votre service▲
![]() | Android2EE
|
|
III. Récupération des tutoriels et lecture des autres chapitres du livre▲
Vous pouvez lire l'ensemble de l'ouvrage sur Android2EE, à cet adresse Livre en consultation. Les 28 chapitres sont disponibles. Un tutorial sera bientôt disponible sur le site Android2EE.
IV. Articles, conférences et autres tutoriaux made in Android2EE▲
Vous pouvez trouver d'autres articles sur developpez.com rédigés par Android2EE.
Vous pouvez trouver les projets Android open sources d'Android2EE sur GitHub.
Android2EE sur Github |
GDirectionsApiUtils pour vous simplifiez l'utilisation du service REST Google Api Direction (les itinéraires entre deux points). Le MythicServiceHelper est un projet simplifiant la communication entre les services et les activités. Il est mieux d'utiliser, à l'heure d'aujourd'hui, EventBus ou Otto. Vous pouvez aller le voir quand même par curiosité. Le Bluetooth avec Android expliqué. Ce projet est un chat bluetooth qui vous montre, par l'exemple, comment mettre en place une communication BlueTooth entre deux appareils Android. Le projet ForecastYahooRest a pour objectif de vous expliquer comment mettre une architecture saine pour vos projets Android pour effectuer des appels REST. Ce projet est lié à la conférence "An Android Journey" que vous pouvez retrouver sur Android2ee. Le projet SignInWithGoogleTutorialvous explique comment mettre l'authentification Google au sein de vos applications. Il est lié à la conférence Google Sign In que vous pouvez retrouver sur Android2EE. |
Vous pouvez trouver les supports des conférences d'Android2EE sur SlideShared.
Android2EE sur SlideShare |
Retrouvez la liste des tutoriaux Android2EE de la formation complète. C'est pas ma meilleure conférence :) An Android Journey La conférence 2014 d'Android2EE qui vous donne toutes les astuces, les bonnes pratiques et les bons conseils à mettre en place dans vos applications pour en faire des applications exceptionnelles. ActionBarCompat Cette conférence vous explique comment mettre en place l'ActionBar dans vos applications pour toutes les versions du système en utilisant l'ActionBarCompat. GoogleSignIn L'authentification Google vous est expliquée dans cette conférence. Android ProTips Cette conférence a été donnée à la DroidCon Paris 2013 pour vous présenter les meilleurs conseils sur le développement Android donnée aux GoogleIo. Ce sont mes bonnes pratiques favorites. Architecture Android Une peu d'architecture, ça vous dit? Cette conférence est dédiée à l'architecture, quels sont les problèmes rencontrés et les bonnes pratiques à mettre en place. Android, un nouveau futur s'ouvre à nous Cette conférence, donnée à Brazzaville, présente les enjeux de la mobilité et en particulier ma vision du futur relative à Android. Combining the power of Eclipse with Android Cette conférence, donnée à l'EclipseDay 2012, présente comment utiliser la DDMS et chasser les fuites mémoires au sein de vos applications Android. A Quick OverviewCette conférence, donnée au CocoHeads Toulouse en 2012, est une introduction à la programmation Android. Android A Quick Course @DevoxxFr Cette présentation est un extraie de la conférence "Android A Quick Course", donnée à DevoxxFrance, pour apprendre le développement Android. Les vidéos (3 heures tout de même sont disponibles sur le site Android2EE ou sur Parleys) |
Les vidéos de certaines de ces conférences sont disponibles à l'adresse suivante : Les vidéos
V. Le site Android2ee, une référence pour le développement Android.▲
Le site Android2EE vous propose des tutoriels, des articles, des vidéos, des conférences, des eBooks en libre consultation pour monter en compétence sur la technologie Android.
Vous trouverez tout cela dans la partie « Open Resources ».
N'hésitez plus visitez-le ! Android2EE
VI. Android2ee vous présente l'Ebook de programmation Android▲
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 ?
L'objectif de ces livres 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 autonome en moins de dix 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.
Lancez-vous dans la programmation Android et faites-vous plaisir !
Vous serez aussi capable de connaître et comprendre quelles sont les considérations à avoir lorsque l'on a à charge une application Android en tant que professionnel de l'informatique. Quelle est la stratégie de tests à utiliser ? Comment signer son application ? Comment la déployer ? Comment mettre en place la gestion du cycle de vie de l'application ? Comment implémenter l'intégration continue ?
Soyez efficient dans l'encadrement de vos projets Android d'entreprise.
L'achat d'un EBook vous donne accès à l'ensemble des tutoriaux Android2EE, plus de 50 projets Android qui vous apprendrons à mettre en place une notion spécifique (SlidingDrawer, Parsing d'un service REST, Mise en place d'un service, d'un ContentProvider...). Vous pouvez dès maintenant vous lancer dans la programmation Android, n'hésitez pas faîtes vous plaisir, il y a 75% de réduction sur les EBooks en ce moment:
Apprendre la programmation Android avec les EBooks Android2EE |
Android, A Complete Course, From Basics To Enterprise Edition (fr). Android, A Quick Course (fr). Android, An Entreprise Edition Vision (fr). Les eBooks sont disponibles en français et en anglais, à votre convenance. |
Nota Bene: l'ouvrage "Android, A Complete Course, From Basics To Enterprise Edition" réunit, au sein d'un même document, les livres "Android, A Quick Course" et "Android, An Enterprise Edition Vision" permettant au lecteur d'avoir dans un même document la totalité des préoccupations liées à la mise en place de projets Android, de la montée en compétence en tant que développeur à la gestion du cycle de vie du projet.