APPLICATIONS
JAVA
Android
Partie III
Ivan MADJAROV - 2014
3. Architecture d'une
application Android
Applications Java sous Android IvMad, 2011-2015 2
L'objectif principal de ce cours est de découvrir la programmation sous
Androïd, sa plate-forme de développement et les spécificités du développement
embarqué sur téléphone mobile. Le cours s’inspire, reprend, modifie et enrichi
des supports disponibles sur Internet.
Composants Android (1)
Les éléments essentiels du Framework Android :
Activity : C'est la composante principale d'une application Android.
Elle représente la couche représentative et visuelle de l'application
qui peut avoir plusieurs couches qui alternent entre elles lors de
l'exécution.
Fragment : C'est une portion d'interface plus souple et dynamique.
Donc, une activité peut être constituée de plusieurs fragments.
Views : Le IHM (GUI) est un "layout"ouune"widgets"couchequi
hérite des classes "android.view.View"et "android.view.ViewGroups".
Service : A la différence d'une Activity un Service ne possède pas
d'interface mais permet l'exécution d'un traitement en tâche de
fond. Donc il n'a pas de vue, mais permet l’exécution d’un
algorithme sur un temps indéfini et terminé en fonction de la tâche.
Applications Java sous Android IvMad, 2011-2015 3
Composants Android (2)
Content Provider : Il permet le partage des données entre
applications, via un fournisseur de contenu (photos, contacts, ...).
Intents : Les composantes Android (Activity, Service, Broadcast Receiver)
communiquent via des messages système que l'on appelle Intent
(intention). Une application peut appeler un service ou une activité
(explicite) ou appeler un service du système Android (implicites).
Broadcast Receiver : C'est le récepteur d'événements qui réagit à un
événement système et les "Intents" implicites. Il ne possède pas
d'interface utilisateurs et est destiné à l'exécution de tâches légères.
Pour des tâches plus lourdes on lance un service. Un broadcast receiver
peut afficher un message, lancer une activité ou un service.
Intent-Filter : un filtre d'intention sert à indiquer à une activité,service
ou broadcast receiver quels Intents peuvent implicitement traiter.
Applications Java sous Android IvMad, 2011-2015 4
Cycle de vie d’une application Android
Applications Java sous Android IvMad, 2011-2015 5
publicclassMainActivity extends Activity {
publicvoid onCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.acceuil);
}
//suspenduedétruit:onDestroy invoqué
protected void onDestroy(){
super.onDestroy();
}
//actifsuspendue:nedétientpluslefocus
protected void onPause(){
super.onPause();
}
//suspendueactif:onResume invoqué
protected void onResume(){
super.onResume();
}
//démarrageactif:détientlefocusetestdémarré
protected void onStart(){
super.onStart();
}
protected void onStop(){
super.onStop();
}
}
Architecture d'une application Android
onCreate : La méthode est appelée à la création d'une activité pour
initialiser les données nécessaires à l'exécution de l'application. A
l'appel de la méthode un Bundle est passé en argument. Il contient l’état
de sauvegarde enregistré lors de la dernière exécution.
onStart : La méthode est appelée dans le cas où l'application est en
arrière-plan et qu’elle repasse en avant-plan. Si l'activité ne peut pas
passer en avant plan alors, l’activité sera transférée à OnStop.
onResume : La méthode est appelée après OnStart quand l'application
passe en background à cause d’une autre application.
onPause : La méthode met en pause l'application et se relance avec la
méthodes OnResume.
onStop : Appelée quand l'activité n’est plus visible.
onDestroy : Appelée quand l'application est fermée (processus closed).
Applications Java sous Android IvMad, 2011-2015 6
Contexte d'une application Android
Le contexte relève l'état courant d'une application et les informations
sur son environnement et sert à récupérer des objets transmis par
d'autres parties de l'application.
On dispose de quatre méthodes:
getApplicationContext() : récupère le contexte de l'application en cours;
getContext() : récupère le contexte de la vue courante;
getBaseContext() : récupère le
contexte défini par la
méthode setBaseContext()
this : peut être utilisé quant
on hérite directement de la
classe Context.
Applications Java sous Android IvMad, 2011-2015 7
Programmer sous Android
Interface graphique par programmation (partie dynamique)
Pour faciliter le développement, Android propose un grand nombre de
"widgets": des éléments d’interface graphique qu'on peut utiliser dans une
application de manière directe et simple.
On peut utiliser les classiques :
boutons, listes déroulantes, cases à cocher
mais aussi de composants plus poussés :
des horloges, des sélecteurs de dates, des galeries photos et des afficheurs de
vidéos.
Interface graphique par fichier XML (partie statique)
Le fichier XML sera lu par le programme et l’interface graphique sera
automatiquement générée en conséquence. Il devient ainsi beaucoup plus
facile de modifier et de faire évoluer une interface graphique déjà
existante, et pouvoir l'adaptée suivant le contexte.
Applications Java sous Android IvMad, 2011-2015 8
Le principe de l'interface graphique
Applications Java sous Android IvMad, 2011-2015 9
Le principe de l'interface graphique
Le GUI sous Android est basée sur les View, les Layout et les Widget.
Un Layout (gabarit) est une View (vue) spéciale qui peut contenir d'autres
View,ainsi le Layout joue le rôle d'un conteneur.
Le Layout n'est pas destinée à fournir du contenu ou des contrôles à
l'utilisateur.
Les layouts se contentent de
disposer les Views par un
gestionnaire de placement.
Les Views se chargent de mettre
le contenu utilisateur en place.
Une View qui ne peut pas en
englober d'autres est appelée
un widget (composant).
Applications Java sous Android IvMad, 2011-2015 10
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !