0% ont trouvé ce document utile (0 vote)
2 vues36 pages

Chapter 2

Ce document présente une introduction au développement d'applications Android, en détaillant l'architecture d'Android, les composants d'une application, et le cycle de vie d'une activité. Il décrit également les outils nécessaires pour le développement, tels que le JDK, le SDK Android et Android Studio, ainsi que la structure d'un projet Android. Enfin, il aborde la génération d'applications APK et propose des exercices pratiques pour mettre en œuvre les concepts appris.

Transféré par

bad.houssy
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues36 pages

Chapter 2

Ce document présente une introduction au développement d'applications Android, en détaillant l'architecture d'Android, les composants d'une application, et le cycle de vie d'une activité. Il décrit également les outils nécessaires pour le développement, tels que le JDK, le SDK Android et Android Studio, ainsi que la structure d'un projet Android. Enfin, il aborde la génération d'applications APK et propose des exercices pratiques pour mettre en œuvre les concepts appris.

Transféré par

bad.houssy
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DÉVELOPPEMENT MOBILE

Pre. OUHMIDA Asmae Année universitaire 2025/2026


02
APPLICATION ANDROID:
STRUCTURE ET
COMPOSANTS
PLAN

1. Architecture de Android

2. Composants d’une application Android

3. Structure d’une activité

4. Cycle de vie d’une activité

5. Outils de développement Android

6. Premier Projet Android

Pre. OUHMIDA Asmae


ARCHITECTURE DE ANDROID

Pre. OUHMIDA Asmae


ARCHITECTURE DE ANDROID

o Linux Kernel

o Libraries

o Android Runtime

o Core Libraries

• Dalvik Virtual Machine

• Application Framework

o Applications and widgets

Pre. OUHMIDA Asmae


ARCHITECTURE DE ANDROID
Linux Kernel
• Pour démarrer le système Android il faut démarrer le noyau Linux.
• Le rôle du OS Android est de fournir les drivers pour la gestion des E/S.
• Généralement, sur un téléphone on trouve des capteurs, ainsi linux va fournir
différents drivers, écran , clavier appareil photo, wifi, mémoire flash, audio,
gestion d’alimentation, etc.

Pre. OUHMIDA Asmae


ARCHITECTURE DE ANDROID
Libraries
• Il s’agit de librairies natives fournit avec Android OS (sécurité SSL,
base de donnée embarquée SQLite, gestionnaire de surface, etc.

Android Runtime
• Machine virtuelle Java: Dalvik Virtual Machine.
• Démarrer la Machine virtuelle pour lancer et exécuter le framework Android

Pre. OUHMIDA Asmae


ARCHITECTURE DE ANDROID
Framework Android
Créer une application sous forme de composants

• Gérer les activités

• Gérer les fenêtres

• Gestion d’affichage

• La géolocalisation

• Accès aux capteurs

• Stocker, accéder et modifier le contenu (la galerie, les contacts, la synchronisation, etc.)

• Gestionnaire de notifications pour communiquer entre les différents composants à travers


des messages
Pre. OUHMIDA Asmae
ARCHITECTURE DE ANDROID
Applications & widgets
Lorsque le framework Android est exécuté, on trouve les applications créées
On trouve les applications crées une fois le framework est démarré

Pre. OUHMIDA Asmae


COMPOSANTS D’UNE APPLICATION ANDROID

Android Framework Container

Mobile Android Applications Utilisateur

Services
Smartphone Native JVM
OS : LINUX Activities
Device Librairies (Dalvik)
Broadcast
(Model, View, Receivers
Controller) Content
Providers

Pre. OUHMIDA Asmae


COMPOSANTS D’UNE APPLICATION ANDROID
Activités (Activities)
• Composant principal de l’application Android
• Une classe Java qui définit l'interface utilisateur et le
comportement d'un écran.
• Responsable de la création et de la gestion de l'interface
utilisateur d'un écran.
• Contrôleur de l’application qui affiche les vues (Layouts)
contenant des données provenant des modèles.
• Réagit aux événements des interactions utilisateur sur
les vues.
Services
• composant qui s'exécute en arrière-plan, indépendamment de l'interface utilisateur.
• pas d'interaction directe avec l'utilisateur.
• Traitement de fond associé à une app (télécharger des fichiers, lire de la musique en arrière-
plan ou synchroniser des données avec un serveur distant, etc.)
Pre. OUHMIDA Asmae
COMPOSANTS D’UNE APPLICATION ANDROID
Broadcast Receivers (Récepteurs de diffusion)
• Gérer la communication entre le système Android et
les applications. .
• La communication entre les composants des
applications Android se fait par envoi de message via
des « Intent ».
Exemples: Afficher une notification lorsque le niveau de
la batterie est bas, mettre à jour l'interface utilisateur
lorsqu'une nouvelle publication est disponible sur un
réseau social, etc…

Content Providers (Fournisseurs de contenu)


• L’accès aux données: Photos, Contacts, Agenda
• modification des données
Exemples: Partage de contacts entre différentes applications, Accès aux
photos stockées dans la galerie par une application de messagerie, etc…
Pre. OUHMIDA Asmae
STRUCTURE D’UNE ACTIVITE
Une activité c’est une classe Java qui hérite d’une classe Activity ou de ses sous-classes comme
CompactActivity et redéfinie les méthodes associées au cycle de vie d’une activité Android
public class Main extends Activity { @Override
@Override protected void onPause() {
[Link]();
protected void onCreate(Bundle savedInstanceState){
}
[Link](savedInstanceState);
} @Override
@Override protected void onStop() {
[Link]();
protected void onStart() { }
[Link]();
} @Override
protected void onDestroy() {
@Override
[Link]();
protected void onResume() { }
[Link]();
}

Pre. OUHMIDA Asmae


CYCLE DE VIE D’UNE ACTIVITE
• Lorsque l’activité est lancée, le système Android appelle
les méthodes onCreate, onStart et onResume.
• Lorsque l’activité s’arrête, le système Android appelle
les méthodes onPause, onStop et onDestroy.
• Lorsque l’activité n’est plus au premier plan, mais
qu’elle est tout de même affichée, onPause est appelée.
Lorsque l’activité retourne au premier plan, onResume
est appelée.
• Lorsque l’activité n’et plus affichéen onPause et onStop
sont appelées. Lorsque l’activité est de nouveau
affichée, onReStart, onStart et onResume sont appelées.

Pre. OUHMIDA Asmae


CYCLE DE VIE D’UNE ACTIVITE
• Lorsque le système Android décide de tuer votre
application, il appelle la méthode onSaveInstanceState qui
vous permet de sauvegarder l’état de votre activité. Cet
état sera passé en paramètre à la méthode onCreate, afin
que vous puissiez restaurer l’état de l’activité.
• Le système Android s’occupe lui-même de sauvegarder et
restaurer l’état des vues des layouts, à condition que ces
vues aient chacune un ID unique dans le layout.
• Le changement de configuration comme le changement
d’orientation de l’écran provoque un redémarrage de
l’activité, vous devez donc sauvegarder et restaurer l’état
dans ce cas.
Pre. OUHMIDA Asmae
CYCLE DE VIE D’UNE ACTIVITE
L'objet Bundle passé en paramètre de la méthode onCreate
permet de restaurer les valeurs des interfaces d'une
activité qui a été déchargée de la mémoire. En effet,
lorsque l'on appuie par exemple sur la touche Home, en
revenant sur le “bureau”, Android peut-être amené à
décharger les éléments graphiques de la mémoire pour
économiser les ressources. Si l'on re-bascule sur
l'application, l'application peut avoir perdu les valeurs
saisies dans les zones de texte...
Si une zone de texte n'a pas d'identifiant, Android ne
pourra pas la sauver et elle ne pourra pas être restaurée à
partir de l'objet Bundle.
Si l'application est complètement détruite (tuée), rien ne
peut être restauré.
Pre. OUHMIDA Asmae
OUTILS DE DEVELOPPEMENT ANDROID
▪Installer le JDK (le Kit Developpement Java )
▪Installer Le SDK Android (Software Development Kit): il
contient les outils et les bibliothèques nécessaires pour
développer des applications Android. Le SDK Android est
disponible gratuitement sur le site web des développeurs
Android.
▪ Installer un environnement de développement intégré
(IDE): Android Studio: l'IDE officiel pour le
développement Android, basé sur IntelliJ IDEA.
[Link]

Une fois Android Studio installé et démarré, si Android


SDK n’est pas installé, il vous demandera de procéder à
son installation.

Pre. OUHMIDA Asmae


OUTILS DE DEVELOPPEMENT ANDROID
SDK Manager

▪Il faut savoir les versions des API SDK


Android installées, une fois l’Android
SDK est bien installé.

▪Vous pouvez le faire à travers l’outils


SDK Manager accessible par le menu
Outils>SDK Manager.

▪Dans notre cas, nous avons l’API de


version 34 qui est installée.

Pre. OUHMIDA Asmae


OUTILS DE DEVELOPPEMENT ANDROID
Android Virtual Device (AVD)
▪Pour tester notre application
Android, nous aurons besoin d’un
Emulateur Android.
▪La gestion des émulateurs Android
est accessible par le menu
Tools>AVD Manager.
▪Pour ajouter différentes versions
d’émulateurs virtuels, on utilise le
bouton Create Virtual Device.
▪Le démarrage d’un émulateur
consomme beaucoup de
ressources. Il faut donc le démarrer
dans le moment opportun et de ne
pas l’arrêter à chaque fois.

Pre. OUHMIDA Asmae


STRUCTURE D’UN PROJET ANDROID STUDIO
▪File > New Project
▪Spécifier le nom du projet et un nom de
domaine de votre choix
▪Next
▪Spécifier les informations concernant le
type d’appareil cible
▪Next
▪Choisir le modèle d’application à
générer. Dans notre cas, on va choisir
Empty Views Activity pour ne pas
générer un projet vide.
▪Next
▪Spécifier le nom de l’activité principale
de démarrage de votre application.
▪Finish
Pre. OUHMIDA Asmae
STRUCTURE D’UN PROJET ANDROID STUDIO
▪Un projet Android Studio est un projet Java basé sur Gradle.
▪Gradle est un outil qui permet l’automatisation des
opérations de construction d’une application Java tout
comme Maven (Compiler les sources, lancer les testes
unitaires, générer l’APK finale de l’application android,
exécuter l’application dans l’émulateur, etc…).
▪Un projet Gradle contient un fichier [Link] dans
lequel, on déclare:
▪Les dépendances du projet (Les librairies à utiliser). Vous
pouvez constater par exemple qu’il fait appel à JUNIT pour
les tests unitaires.
▪Les versions des API Android SDK à utiliser au moment de
compilation et de génération des builds.
▪On n’aura pas besoin de modifier ce fichier pour le
moment.
Pre. OUHMIDA Asmae
STRUCTURE D’UN PROJET ANDROID STUDIO
Les éléments les plus important d’un projet Android sont:
▪Dossier Java:
• [Link]: L’activité principale
• [Link]: Un simple exemple de Test Unitaire basé sur Junit
• ExampleInstrumentedTest: Un exemple de test unitaire faisant appel à
AndroidJUnit
▪Dossier res (Resources)
• Dossier layout: contient les vues de l’application au format xml:
• activity_main.xml: La vue principale sera affichée par MainActivity
• Dossier values: contient des fichiers xml qui contiennent des ressources
affichées par l’application
• [Link]: contient les valeurs des chaines de caractères affichées par
les vues
• [Link]: pour déclarer des couleurs
• [Link]: pour déclarer des styles pour le thème de l’application
• Dossier drowable: contient des ressources images de l’application
Pre. OUHMIDA Asmae
STRUCTURE D’UN PROJET ANDROID STUDIO
▪Le système de ressources permet de gérer très facilement
l'internationalisation d'une application. Il suffit de créer des répertoires
values-XX où XX est le code de la langue que l'on souhaite implanter. On
place alors dans ce sous répertoire le fichier xml [Link] contenant
les chaînes traduites associées aux même clefs que dans
values/[Link]. On obtient par exemple pour les langues ar et fr
l'arborescence:
MonProjet/
res/
values/
[Link]
values-ar/
[Link]
values-fr/
[Link]
▪Android chargera le fichier de ressources approprié en fonction de la
langue du système.
Pre. OUHMIDA Asmae
[Link]
▪Premier fichier lu par Android Framework au démarrage de l’application.
▪On y déclare entre autres:
•Activité de démarrage de l’application, Activités, Services, etc
•Autorisation attribuées à l’application (Internet, Géolocalisation, etc…)

Pre. OUHMIDA Asmae


CLASSE DE RESSOURCES [Link]
▪Pour manipuler facilement dans le code public final class R {
java des activités les différentes public static final class id {
ressources déclarées dans l’application, un public static final int edit = 16908291;
projet Android utilise une classe très public static final int empty = 16908292;
importante en lecture seule [Link] ...
▪Cette classe statique déclare des }
constantes dont les valeurs représentent public static final class layout {
des identifiants des ressources. Le public static final int activity_list_item = 17367040;
contenu de cette classe est défini …
automatiquement par Android Studio. }
▪Nous allons voir par la suite l’utilité de …
cette classe. }

Pre. OUHMIDA Asmae


CLASSE DE RESSOURCES [Link]
▪Toutes les ressources sont accessibles au travers public final class R {
de R, dès qu'elles sont déposées dans le public static final class id {
répertoire adéquat. Les ressources sont utilisées public static final int edit = 16908291;
de la manière suivante: public static final int empty = 16908292;

android.R.type_ressource.nom_ressource ...
qui est de type int. Il s'agit en fait de l'identifiant }
de la ressource. On peut alors utiliser cet public static final class layout {
identifiant ou récupérer l'instance de la ressource public static final int activity_list_item = 17367040;
en utilisant la classe Resources: …
Resources res = getResources(); }
String hw = [Link]([Link]); …
}
XXX o = [Link](id);

Pre. OUHMIDA Asmae


[Link]

Pre. OUHMIDA Asmae


ACTIVITY_MAIN.XML

Pre. OUHMIDA Asmae


[Link] & ACTIVITY_MAIN.XML
Android MainActivity View
Lire [Link]
Instancier
OnCreate
Load Bundle Activity State

Load view Activity_main.xml


OnStart

OnResume

Pre. OUHMIDA Asmae


EXÉCUTION DE L’APPLIACTION SUR UN ÉMULATEUR
Les éléments les plus important d’un projet Android
sont:
▪En exécutant l’application, vous faites appel à Gradle
pour recompiler et construire l’application.
▪Cette opération nécessite de sélectionner l’instance
de l’émulateur à utiliser pour installer l’application.
▪Sélectionner l’instance de l’émulateur ayant été déjà
démarrée ou démarre une nouvelle instance.

Pre. OUHMIDA Asmae


GÉNÉRER L’APPLICATION APK
Les éléments les plus important d’un projet Android
sont:
▪Les applications que vous installez dans un appareil
Android sont des fichiers de format APK (Android
Package kit)
▪C’est fichier au format Zip qui contient les éléments
de l’application android:
▪[Link]
▪Byte code des classes Java au format DEX optimisé
pour la JVM de Dalvik. Ces fichiers sont obtenus en
transformant le byte code des classes (.class) au
format DEX en utilisant un outil DX.
▪Ressources: XML, Images, audio, vidéos
▪Eventuelles Librairies additionnelle (.jar)
▪Pour générer le fichier APK signé:
▪Menu Build>Generate Signed APK

Pre. OUHMIDA Asmae


Exercice
1) Créez un nouveau projet avec une Activity selon le template “Empty Views Activity”,

2) Redéfinissez les différentes méthodes du cycle de vie,

3) Afficher dans chacune un message de log à l’aide de la classe Log,

4) Observez l’ordre de l’affichage de ces messages dans la console dans les différents
cas de figures.

5) Finalement, tester la rotation de l'écran.

Pre. OUHMIDA Asmae


Exercice
La classe Log est un outil intégré au framework Android qui permet d'afficher des messages de log
dans la console Android Studio. Cette classe offre plusieurs fonctionnalités:
Affichage de messages:
▪Log.d(String tag, String message) : Affiche un message de débogage avec un tag et un message
personnalisés.
▪Log.i(String tag, String message) : Affiche un message d'information avec un tag et un message
personnalisés.
▪Log.w(String tag, String message) : Affiche un avertissement avec un tag et un message
personnalisés.
▪Log.e(String tag, String message) : Affiche une erreur avec un tag et un message personnalisés.
▪Log.v(String tag, String message) : Affiche un message verbeux (détail) avec un tag et un message
personnalisés.
Emplacement des messages:
•Les messages s'affichent dans la console Android Studio, dans le panneau Logcat.
•Vous pouvez également rediriger les messages vers un fichier journal.

Pre. OUHMIDA Asmae


Exercice
package [Link];

import [Link];

import [Link];
import [Link];

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
Log.d("MainActivity", "onCreate valid");
}

@Override
protected void onStart() {
[Link]();
Log.d("MainActivity", "onStart valid");
}
Pre. OUHMIDA Asmae
Exercice
@Override
protected void onResume() {
[Link]();
Log.d("MainActivity", "onResume valid");
}
@Override
protected void onPause() {
[Link]();
Log.d("MainActivity", "onPause valid");
}
@Override
protected void onStop() {
[Link]();
Log.d("MainActivity", "onStop valid");
}
@Override
protected void onDestroy() {
[Link]();
Log.d("MainActivity", "onDestroy valid");
}
}
Pre. OUHMIDA Asmae
Exercice

Pre. OUHMIDA Asmae

Vous aimerez peut-être aussi