Vous êtes sur la page 1sur 4

19/03/12

Chapitre 1 : Structure d une application Android

thaouet.net/index.php/cours/programmationmobile/2-chapitre1android?tmpl=component&print=1&pa

diord nA noi tacilppa e n ud er u tc ur tS : 1 er tipa hC

Catgorie : COURS ANDROID Publi le Jeudi, 10 Mars 2011 11:37 crit par TAHAR HAOUET Affichages : 1140

Android de Google est un systme d'exploitation pour tlphones mobiles. Il est fond sur Linux. L'architecture des applications pour Android introduit des concepts allant au-del des modles classiques. Les applications Android sont crites dans le langage de programmation Java. Le SDK Android compile le codeainsi que toutes les donnes et les fichiers de ressources dans un paquet Android, un fichier d'archive avec un suffixe apk . Tout le code dans un fichier APK est considre comme une application et c est le fichier que les appareils Android utilisent pour installer l'application. Une fois install sur un appareil mobile, chaque application Android vit dans son propre sandbox scuris. Le systme d'exploitation Android est un systme multi-utilisateurs Linux dans lequel chaque application est un autre utilisateur. Par dfaut, le systme attribue chaque application un ID utilisateur unique Linux (l'ID est utilis uniquement par le systme et est inconnue la demande). Le systme Android dfinit les autorisations pour tous les fichiers dans une application de sorte que seul l'ID utilisateur affect cette application peut y avoir accs. Chaque processus a sa propre machine virtuelle (VM), une application s'excute d une faon isole par rapport aux autres applications. Par dfaut, chaque application s'excute dans son propre processus Linux. Android commence le processus lorsque l'un des composants de l'application doit tre excut, puis arrter le processus quand il n'est plus ncessaire ou lorsque le systme doit rcuprer la mmoire pour d'autres applications. De cette faon, le systme Android met en uvre le principe du moindre privilge. Cela signifie que chaque application, par dfaut, a accs aux seuls lments dont elle a besoin pour faire son travail et rien de plus. Cela cre un environnement trs sr dans lequel l application ne peut pas accder certaines parties du systme pour lesquels elle n'est pas l'autorisation. Toutefois, il existe des moyens pour qu une application partage des donnes avec d'autres applications d'accder aux services du systme: Il est possible de prendre des dispositions pour deux applications de partager le mme ID utilisateur Linux, auquel cas ils sont en mesure d'accder leurs fichiers. Pour conomiser les ressources systme, les applications avec le mme ID utilisateur peuvent galement s organiser courir dans le mme processus Linux et partagent la mme machine virtuelle. Une application peut demander l'autorisation d'accs aux donnes de l appareil mobile telles que les contacts de l'utilisateur, les messages SMS, le stockage (carte SD), appareil photo, Bluetooth, GPS... Toutes les autorisations d'application doit tre accorde par l'utilisateur lors de l'installation. Qui couvre les bases
1/4

: esab ed s epicni r P

19/03/12

Chapitre 1 : Structure d une application Android

concernant la faon dont une application Android existe au sein du systme. Le modle donnes-vues C'est le modle utilis notamment par la librairie Swing de Java. La vue est l'interface par laquelle l'utilisateur interagit avec le logiciel. Les donnes sont stockes sparment et peuvent s'afficher dans des vues diffrentes. La vue peut aussi changer les donnes selon le contexte, par exemple changer le texte selon la langue de l'utilisateur. Le modle d'Android Android tend ce modle vues/donnes, il fournit un nouveau modle qui convient aux matriels activs en permanence. La structure des applications est dfinie ainsi: Les vues (classe android. ie .Vie ) L'interface d'un programme pour Android est une arborescence de vues. Le fichier AndroidManifest.xml Il dfinit les composants de l'application et leurs relations. Il donne l'application les permissions quand ce qu'elle peut faire vis vis des utilisateurs. On peut aussi donner des permissions aux composants de l'application. Les composants de l'application: Ce sont les lments essentiels d'une application Android. Chaque composant est un point d entre dans votre application. Toutes les composantes sont les points d'entre effective pour l'utilisateur et certains dpendent les uns des autres, mais chacun existe comme une entit propre et joue un rle spcifique, chacun est un bloc de construction unique qui permet de dfinir le comportement global de votre application. Il existe quatre diffrents types de composants applicatifs. Chaque type a un objectif distinct et prsente un cycle de vie distincts qui dfinit comment le composant est cr et dtruit. Voici les quatre types de composants d une application: Activit (classe android.app.Activit ). C'est une chose que l'utilisateur peut faire, traduit en programme. Elle correspond un cran mais peut avoir plusieurs vues. Par exemple, une application de messagerie peut avoir une activit qui affiche une liste de nouveaux e-mails, une autre activit pour composer un e-mail, et une autre activit pour la lecture des emails. Bien que les activits travaillent ensemble pour former une application de messagerie cohrente, chacune est indpendante des autres. Une autre application peut dmarrer une quelconque de ces activits (si l'application de messagerie le permet). Par exemple, une Application camra peut lancer l activit composer un nouveau message pour partager une photo. Broadcast et Intent Receivers (classe android.content.Intent). Dcrit une action qui doit tre ralise. Service (classe android.app.Service). Programme qui fonctionne en tche de fond. Fournisseur de contenu (classe android.content.ContentProvider). Il encapsule les donnes et les fournit en commun aux programmes. Notification (classe android.app.NotificationManager et android.app.Notification).
thaouet.net/index.php/cours/programmationmobile/2-chapitre1android?tmpl=component&print=1&pa 2/4

19/03/12

Chapitre 1 : Structure d une application Android

Classe qui informe l'utilisateur de ce qui se passe. A cot des composants, il y a aussi les ressources qui peuvent tre des fichiers XML, des fichiers images jpeg et autres. Elles utilisent l'interface android.content.Resources et sont stockes dans le rpertorie res.
noi tacilppa'l ed s t nasopmoC

Chaque composant figure dans une liste enregistre dans le fichier manifeste AndroidManifest. ml de chaque application.

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 Activit . Elle dispose d'une interface utilisateur graphique faite de vues (views) et elle rpond des vnements (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 dcrite par un La out: - Plein cran. - Flottant: dialogue ou alerte. - Aucun. Dans ce cas elle fonctionne en tche de fond et est invisible. On la rend visible en lui donnant un layout. Noter que l'interface graphique est dcrite en XML.

Broadcast and Intent Receivers (Intent)


Un Broadcast Receiver permet d'couter ce qui se passe sur le systme ou sur votre application et ventuellement de dclencher une action que vous aurez dfinie. C'est souvent par ce mcanisme que les services sont lancs. Les activits, services, broadcast receivers sont activs par des messages asynchrones appels intents. Un Intent est un objet qui transporte le contenu du message et qui contient aussi une srie de donnes pour assurer le routage du message. Des filtres (intent-filter) sont poss au niveau des composants pour savoir s ils sont le composant cible pour le message envoy. Les intentions sont les buts des applications et se concrtisent par le changement d'cran. Une intention est forme d'une action et de donnes 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 donne est l'URI qui permet d'accder cette fiche. Les Intent Filters (filtres) dcrivent comment l'action doit s'appliquer. L'Intent Receiver est un objet qui ragit aux vnements extrieurs. Il peut fonctionner dans l'application ou il peut dmarrer l'application.

Service
Le service est destin fonctionner indpendamment de l'cran, donc des activits. Le meilleur exemple est le joueur de musique qui peut fonctionner pendant qu'on passe d'un cran un autre. Un service n a pas d interface visuelle, mais tourne en arrire plan dans un intervalle de temps indfini, en fait jusqu ce qu il soit arrt ou qu il ait fini sa tche.

Fournisseur de contenu (Content Provider)


thaouet.net/index.php/cours/programmationmobile/2-chapitre1android?tmpl=component&print=1&pa 3/4

19/03/12

Chapitre 1 : Structure d une application Android

Les donnes stockes par un programme, sous forme de fichiers ou de bases de donnes SQLite sont prives et ne peuvent tre utilises par d'autres applications. On utilise un Content Provider pour partager ces donnes entre applications. L'interface ContentResolver est l'interface qui fournit les donnes aux autres objets.

Notification
La classe android.app.Notification dfinit comment un vnement doit tre notifi l'utilisateur: affichage d'une icne, voyant lumineux, vibration, ou autre. Tandis que la classe android.app.NotificationManager envoie le message sous la forme ainsi dfinie.
nois ulc noC

Le modle d'application Android offre des concepts qui vont au-del d'une interface pour tlphone mobile. Il est conu pour un ensemble d'applications partageant des donnes, dclenches les unes par les autres, fonctionnant en tche de fond ou dans une vue sur l'cran. C'est une interface entre l'utilisateur et le systme d'exploitation de nature robotique qui pourrait fonctionner sur un ordinateur portable ou de bureau.

thaouet.net/index.php/cours/programmationmobile/2-chapitre1android?tmpl=component&print=1&pa

4/4