Chapitre 2:
Les composantes d’une
application Android
Développement mobile sous Android
Developpement mobile sous
1
Android
Composantes applicatifs
• Activitiés (activity): c’est le bloc de base d’une
application composé d’une interface graphique
qui interagit avec l’utilisateur
• Services: est un composant qui fonctionne en
tâche de fond, de manière invisible.
• Fournisseurs de contenu (Content provider): permet
de gérer et de partager les informations.
• Gadgets (Widget): est un composant graphique qui
s’installe sur le bureau Android.
Developpement mobile sous
2
Android
Les éléments d’interaction
• L’objet Intent:
il permet de diffuser des messages en demandant
la réalisation d’une action.
• Le récepteur d’intents:
il permet à une application d’être à l’écoute des
autres afin de répondre aux objets Intent qui lui sont
destinés et qui sont envoyés par d’autres
composants applicatifs.
• Notification:
une notification signale une information à
l’utilisateur sans interrompre ses actions en cours.
Developpement mobile sous
3
Android
Permissions
Certaines opérations sont réalisables à condition d’en
obtenir la permission. Ces actions sont de plusieurs
formes :
• opérations pouvant entraîner un surcoût
(connexion, échange de données, envoi de SMS
par exemple) ;
• utilisation de données personnelles (accès à vos
contacts, à votre compte Google, exploitation de
vos informations linguistiques entre autres) ;
• accès au matériel du téléphone (prise de clichés,
écriture sur la carte mémoire...).
Developpement mobile sous
4
Android
Cycle de vie d’une
application Android
Developpement mobile sous
5
Android
L’activité
Une activité est constitué d’un contexte d’une
application et d’une seule et unique interface
graphique
Developpement mobile sous
6
Android
Une activité lance une autre
Developpement mobile sous
7
Android
Cycle de vie d’une activité
Les états principaux d’une activité sont:
• Active (active) : activité visible qui détient le focus utilisateur et
attend les entrées utilisateur. C’est l’appel à la méthode onResume,
à la création ou à la reprise après pause qui permet à l’activité
d’être dans cet état. Elle est ensuite mise en pause quand une autre
activité devient active grâce à la méthode onPause ;
• Suspendue (paused) : activité au moins en partie visible à l’écran
mais qui ne détient pas le focus. La méthode onPause est invoquée
pour entrer dans cet état et les méthodes onResume ou onStop
permettent d’en sortir ;
• Arrêtée (stopped) : activité non visible. C’est la méthode onStop qui
conduit à cet état.
Developpement mobile sous
8
Android
Developpement mobile sous
9
Android
Cycle de vie d’une activité
import [Link];
import [Link];
public final class TemplateActivity extends Activity {
/**
* Appelée lorsque l’activité est créée.
* Permet de restaurer l’état de l’interface
* utilisateur grâce au paramètre savedInstanceState.
*/
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
// Placez votre code ici
}
/**
* Appelée lorsque que l’activité a fini son cycle de vie.
* C’est ici que nous placerons notre code de libération de
* mémoire, fermeture de fichiers et autres opérations
* de "nettoyage".
*/
@Override
public void onDestroy(){
// Placez votre code ici
[Link]();
}
Developpement mobile sous
10
Android
Cycle de vie d’une activité
/**
* Appelée lorsque l’activité démarre. Permet d’initialiser les contrôles.*/
@Override
public void onStart(){
[Link]();
// Placezvotre code ici
}
/**
* Appelée lorsque l’activité passe en arrière plan.
* Libérez les écouteurs, arrêtez les threads, votre activité
* peut disparaître de la mémoire.
*/
@Override
public void onStop(){
// Placez votre code ici
[Link]();
}
Developpement mobile sous
11
Android
Cycle de vie d’une activité
/**
* Appelée lorsque l’activité sort de son état de veille.
*/
@Override
public void onRestart(){
[Link]();
//Placez votre code ici
}
/**
* Appelée lorsque que l’activité est suspendue.
* Stoppez les actions qui consomment des ressources.
* L’activité va passer en arrière-plan.
*/
@Override
public void onPause(){
//Placez votre code ici
[Link]();
}
Developpement mobile sous
12
Android
Cycle de vie d’une activité
/**
* Appelée après le démarrage ou une pause.
* Relancez les opérations arrêtées (threads).
* Mettez à jour votre application et vérifiez vos écouteurs.
*/
@Override
public void onResume(){
[Link]();
// Placez votre code ici
}
/**
* Appelée lorsque l’ activité termine son cycle visible.
* Sauvez les données importantes.
*/
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Placez votre code ici
// sans quoi l’activité aura perdu son état
// lors de son réveil
[Link](savedInstanceState);
}
/**
* Appelée après onCreate.
* Les données sont rechargées et l’interface utilisateur.
* est restaurée dans le bon état.
*/
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
[Link](savedInstanceState);
//Placez votre code ici
}
}
Developpement mobile sous
13
Android
Les vues (view)
• C’est les éléments de constructions d’une interface
graphique d’une activité
• Exemple: textview, Editview, Button…
• Chaque écran Android contient un arbre
d’élément view
• Les vues peuvent etre disposées dans une activités
soit par une description XML ou par code Java.
Developpement mobile sous
14
Android
Les Ressources
Developpement mobile sous
15
Android
Fichier de configuration
• Chaque application Android nécessite un fichier de
configuration: [Link]
• Il décrit :
o le contexte de l’application
o les activités
o les services
o les récepteurs d’intents (Broadcast Receivers)
o les fournisseur de contenu
o Et les permissions
Developpement mobile sous
16
Android
Fichier de configuration
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
Developpement mobile sous
17
Android
Fichier de configuration
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<path-permission />
<meta-data />
</provider>
<uses-library />
</application>
</manifest>
Developpement mobile sous
18
Android
Fichier de configuration
• <uses-permission /> définit les permissions nécessaires
• <application> un seul nœud est nécessaire pour définir le contenue
de l’application
• <activity> déclare une activité présentée à l’utilisateur.
• <service> déclare un composant de l’application en tant que
service (pas d’interface graphique, tout se déroulera en tâche de
fond de votre application).
• <receiver> déclare un récepteur d’objets « Intent ». Cet élément
permet à l’application de recevoir ces objets alors qu’ils sont diffusés
par d’autres applications ou par le système
• <provider> déclare un fournisseur de contenu qui permettra
d’accéder aux données gérées par l’application.
Developpement mobile sous
19
Android