Android pour mobiles: structure des applications

Android de Google est un système d'exploitation pour téléphones mobiles. Il est fondé sur Linux. L'architecture des applications pour Android introduit des concepts allant au-delà des modèles classiques.

Le modèle données-vues

C'est le modèle utilisé notamment pas la librairie Swing de Java. La vue est l'interface par laquelle l'utilisateur interagit avec le logiciel. Les données sont stockées séparément et peuvent s'afficher dans des vues différentes.
La vue peut aussi changer les données selon le contexte, par exemple changer le texte selon la langue de l'utilisateur.

Le modèle d'Android

Android étend ce modèle vues/données, il fournit un nouveau modèle qui convient aux matériels activés en permanence. La structure des applications est définie ainsi:

Les vues (classe android.view.View)

Le fichier AndroidManifest.xml

Les composants de l'application:

A coté des composants, il y a aussi les ressources qui peuvent être des fichiers XML, des fichiers images jpeg et autres. Elle utilisent l'interface android.content.Resources et sont stockées dans le répertorie res.

Composants de l'application

Chaque composant figure dans une liste enregistrée dans le fichier manifeste AndroidManifest.xml de chaque application.


HTC Hero avec Android

Activité (Activity)

Une activité correspond à un écran. Si une application se compose de plusieurs écrans, elle a une activité pour chaque écran. Chaque activité est une classe qui étend la classe de base Activity. Elle dispose d'une interface utilisateur graphique faite de vues (views) et elle répond à des évènements (events). Quand on change d'écran, on lance une nouvelle activité. Celle-ci peut retourner une valeur. Par exemple, si une activité permet de choisir quelque chose, un texte, une image, elle retourne ce qu'elle à choisi.

L'interface graphique d'une activité est décrite par un Layout:
- Plein écran.
- Flottant: dialogue ou alerte.
- Aucun. Dans ce cas elle fonctionne en tâche de fond et est invisible. On la rend visible en lui donnant un layout.

Noter que l'interface graphique est décrite en XML comme XUL et XAML.

Intention (Intent)

Les intentions sont les buts des applications et se concrétisent par le changement d'écran. Une intention est formée d'une action et de données qui sont des URI.
Exemples d'actions: MAIN, VIEW, EDIT, PICK.
Si l'on veut voir la fiche d'une personne on forme une intention. L'action est VIEW et la donnée est l'URI qui permet d'accéder à cette fiche.
Les IntentFilters (filtres) décrivent comment l'action doit s'appliquer. L'IntentReceiver est un objet qui réagit aux évènements extérieurs. Il peut fonctionner dans l'application ou il peut démarrer l'application.

Exemple d'intention, voir la page Web: VIEW pour l'action et pour donnée https://www.scriptol.fr.

Service

Le service est destiné à fonctionner indépendamment de l'écran, donc des activités. Le meilleur exemple est le joueur de musique qui peut fonctionner pendant qu'on passe d'un écran à un autre.

Fournisseur de contenu (Content Provider)

Les données stockées par un programme, sous forme de fichiers ou de bases de données SQLite sont privées et ne peuvent être utilisées par d'autres applications.

On utilise un Content Provider pour partager ces données entre applications. L'interface ContentResolver est l'interface qui fournit les données aux autres objets.

Notification

La classe android.app.Notification définit comment un évènement doit être notifié à l'utilisateur: affichage d'une icône, voyant lumineux, vibration, ou autre.
Tandis que la classe android.app.NotificationManager envoie le message sous la forme ainsi définie.

Conclusion

Le modèle d'application Android offre des concepts qui vont au-delà d'une interface pour téléphone mobile. Il est conçu pour un ensemble d'applications partageant des données, déclenchées les unes par les autres, fonctionnant en tâche de fond ou dans une vue sur l'écran. C'est une interface entre l'utilisateur et le système d'exploitation de nature robotique qui pourrait fonctionner sur un ordinateur portable ou de bureau.

Référence: developer.android.com

Voir aussi: Android et Nexus One.