Tutoriel : Les composants principaux d'Android

Vous avez été nombreux à consulter le premier tutoriel de Cyril Mottier sur l’arborescence d’un projet Android. On continue avec un nouveaux tutoriel qui va vous présenter les composants principaux d’une applications Android.

android-activity

Lorsque l’on aborde une nouvelle technologie, on souhaite d’emblée réaliser un premier projet. Etant passé maintes fois par cette étape, je comprend votre engouement à réaliser votre première application Android. Malheureusement, avant d’effectuer un premier et traditionnel “Hello World”, il me semblait plus utile d’introduire les composants principaux d’Android. Je tiens tout de même à rassurer ceux qui souhaiterait décrocher maintenant : nous allons attaquer le vif du sujet avec le développement d’une première application dans la prochaine partie de cette série de tutoriaux !

Le développement sur Android s’appuie sur des classes importantes du framework. Ces classes sont, en quelque sorte, les “briques” élémentaires sur lesquelles vos futures applications reposeront. Elles sont tellement indispensables qu’il est tout simplement impossible de contruire votre application sans passer par au moins l’une d’elles. Cette partie tente de décrire de façon globale et succincte ces différentes “briques”.

Intent

Les Intents sont des objets permettant de faire passer des messages contenant de l’information entre composants principaux. La notion d’Intent peut être vue comme une demande de démarrage d’un autre composant, d’une action à effectuer. La raison d’être des Intents provient du modèle de sécurité d’Android. Chaque application est en effet sandboxée. Cela veut dire qu’une application A ne peut accéder aux données d’une application B. Grâce aux Intents, les applications ont la possibilité de fournir leurs services ou données si elles le souhaite.

View

Les Views sont les composants de base de l’interface graphique. Elles permettent de construire l’interface utilisateur. Les widgets (nom donné à des composants graphiques “avancés” : une barre de progression, par exemple, est un widget), composants graphiques ou autres layout (composant permettant de placer les différents composants graphiques à l’écran) héritent en fait de cette classe élémentaire. Le rendu/dessin d’une View s’effectue par l’intermédiaire d’un Canvas (qu’on peut assimiler à une feuille transparente sur laquelle on dessine avec un crayon (Paint). Pour finir, la vue est le principal composant qui s’occupe de gérer les actions utilisateurs (appui sur l’écran, sur le clavier, etc.).

Lorsqu’on créé une application à l’aide du framework Android, le développeur doit hériter d’au moins une des 4 classes brièvement décrites ci-dessous. Ces notions de composants applicatifs vous sembleront, j’en suis sûr, totalement déroutantes au premier abord. Gardez à l’esprit que vos développements et les différentes parties de ce tutorial, vous permettront de clarifier vos idées.

Activity

le concept d’Activity repose sur la notion d’interaction utilisateur. Une Activity représente la fenêtre ou tout simplement l’écran qui sera affiché à l’utilisateur. Elle permet également de gérer des fonctionnalités telles que l’appui sur la touche [MENU] ou l’affichage de messages d’alerte (Toast). Faites bien attention à ne pas confondre la notion d’Activity et de View. Il est évident que faire la différence entre ces deux notions est difficile à ce stade de compréhension du framework. Rappelez vous que vos premières réalisations vous permettront de dissocier les deux : Soyez patient!

Service

La notion de service est un avantage certain sur l’iPhone. En effet, un Service est en fait un programme tournant en tâche de fond et n’ayant pas d’interface graphique (ce qui n’est pas réalisable, à l’heure où j’écris ces lignes, sur iPhone OS). L’exemple commun illustrant au mieux cette notion est celui du lecteur mp3. Un lecteur mp3 ne nécessite pas, pour la plupart du temps, d’interface graphique et doit tourner en tâche de fond laissant la possibilité aux autres applications de travailler/s’exécuter librement.

ContentProvider

Les ContentProvider sont, comme l’exprime leurs noms, des gestionnaires de données. Ils permettent de partager l’information entre applications. Imaginons une application qui permette de conserver les cartes de visite virtuelles d’un ensemble de personnes. Ces cartes de visite contiennent généralement le nom, le prénom et un moyen de contact de la personne. Un tel programme peut être créé sous forme de ContentProvider ce qui lui permettra de fournir à d’autres applications présentes sur le système les informations sur une personne. Une application tierce d’envoi de courriel peut par exemple interroger ce ContentProvider afin d’obtenir l’adresse courriel d’un contact.

BroadcastReceiver

Pour finir, un BroadcastReceiver est une application qui est à “l’écoute” des autres applications. Ce type d’application tente de répondre auxIntents qui lui sont adressés. Il ne fait donc rien d’autres que d’être à l’écoute des Intents envoyés par d’autres composants applicatifs.

Conclusion

Vous connaissez maintenant les différents éléments utilisés dans une application Android. Si vous voulez des détails sur certains points ou si vous avez des questions, n’hésites pas à les poser dans les commentaires.

Pour aller plus loin :

5 commentaires sur "Tutoriel : Les composants principaux d'Android" :

  • yolo le 14/04/2009

    intéressant ce petit tuto,
    ca donne envie de développer ;)

  • Cyril Mottier le 15/04/2009

    Il ne tient qu’à vous de vous lancer :p

  • Laurent B. le 10/05/2009

    Honnêtement je m’y suis mis aujourd’hui par curiosité et je réalise déjà des trucs sympas ! Je ne sais pas ce que va donner Android mais je me suis beaucoup amusé à me familiariser avec tous les composants. Leur utilisation est simple et intuitive ! un vrai régal..

    En une journée, on maîtrise facilement les différents widgets (input text, datepicker, autocompletion et même des onglets très pratique pour des applications destinées à des mobiles) et on distingue bien la différence entre une “activity” et une “view”. L’architecture MVC est également très pratique pour gérer les layouts.

    Bravo pour le blog il est clair et donne envie de s’astiquotter au “petit” Android :)

  • PointGPhone le 10/05/2009

    Bravo à toi ! On attend de voir ta première appli !

  • guillaume le 31/08/2009

    bonjour
    tentant de me mettre a android, j’aimerais savoir s’il existe qqpart la liste des intents utilisables pour faire appel aux applis pre-installees sur un telephone et comment on les utilise (savoir comment passer les parametres necessaires a l’application desiree)
    a priori, on peut farfouiller dans les sources d’android, et trouver au coup par coup ce que l’on cherche, mais c’est pas forcement tres clean comme facon de faire….
    merci

Exprimez-vous en laissant un commentaire !

Les commentaires ne sont pas modérés avant leur publication alors n'hésitez à vous exprimer librement.

Une seule règle : Rester un minimum poli et constructif.

Vous avez des questions d'ordre général à poser? Direction le forum.