5. Généralités
Environnement de développement
Architecture
Application Android
Dénition
Bref historique
Dénition
Android est un système d'exploitation open source libre pour appareils
mobiles;
Concurrents: Symbian OS, iOS(iphone OS), Windows mobile, ...
Saber LAJILI La plateforme Android 5 / 32
8. Généralités
Environnement de développement
Architecture
Application Android
Dénition
Bref historique
Bref historique
Android est issu du travail d'une startup (entreprise en démarrage)
Rachetée par Google en 2005
Création le 7 Novembre 2007 de l'OHA(Open Handset Alliance)
Annonce ocielle de la plateforme Android le même Jour
Octobre 2008 : sortie du premier samrtphone Android aux Etats-Unis
et Mars 2009 en France
2009 : premières tablettes Android
Le vrai succès à partir de début 2011, avec la version Android 3.0
Saber LAJILI La plateforme Android 8 / 32
10. Généralités
Environnement de développement
Architecture
Application Android
Environnement de développement
1 L'environnement java (JDK : java Development Kit)
2 AndroidStudio :environnement spécique à Android basé sur IntelliJ
IDEA.
NB : la solution Eclipse est non adoptée par google depuis l'an 2015.
1 SDK :Software Development Kit : ensemble d'outils nécessaires pour
créer une application Android
Saber LAJILI La plateforme Android 10 / 32
11. Généralités
Environnement de développement
Architecture
Application Android
SDK
SDK : regroupe les outils suivants :
aapt Android Asset Packaging Tool (gérer *.APK)
adb Android Debug Bridge : (déploiement de l'application)
ddms : Dalvik Debug Monitor Service : déboggage de l'application
Autres outils
Saber LAJILI La plateforme Android 11 / 32
12. Généralités
Environnement de développement
Architecture
Application Android
AVD (Android Virtual Devices)
Gérer les émulateurs. Un émulateur est un dispostif mobile virtuel ( un
téléphone , une tablette, une lunette, . . . )
NB : Genymotion est une alternative de création d'émulateur
+virtualBox
Saber LAJILI La plateforme Android 12 / 32
15. Généralités
Environnement de développement
Architecture
Application Android
ART : Android Run Time
Architecture
Cette architecture spécique au système Android conçue pour maîtriser les
ressources et la consommation d'énergie.
Architecture à 4 niveaux
1 Noyau Linux 2.6 standard+ extensions (besoins de mobilité comme
alarm, binder, power management, logger low memory killer, . . . )
2 Bibliothèques partagées par les diérents composants du système +
machine virtuelle ART
3 Couche framework fournit le support de création des applications
mobiles et d'accès aux API et services de dispositif mobile.
4 Couche application : Les applications écrites en Java
Saber LAJILI La plateforme Android 15 / 32
17. Généralités
Environnement de développement
Architecture
Application Android
ART : Android Run Time
Architecture : ART
Machine virtuelle : Dalvik arrêtée depuis la version 5 de Android et
remplacée par ART.
Dalvik : JIT: Just In Time (compilation à l'exécution)
ART : Anroid Run Time
AOT Compilation (Ahead Of Time) : compilation à l'installation et
non plus à l'exécution
augmenter les performances et l'espace de stockage des applications
amélioration de grabage collector
amélioration de déboggage (messages d'erreur plus détaillés)
ART vs Dalvik : https://source.android.com/devices/tech/dalvik/
Saber LAJILI La plateforme Android 17 / 32
18. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Outline
1 Généralités
2 Environnement de développement
3 Architecture
4 Application Android
Compilation
Composants d'une
application Android
Application Hello World
Saber LAJILI La plateforme Android 18 / 32
19. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Application Android
Application native= application fonctionnelle sur une plateforme
spécique
Création d'un chier .apk qui contient toute l'application et ses
ressources qui sera installé sur la plateforme Android
Toutes les applications Android ont les même droits
Une application est exécutée dans sa propre VM (Virtual Machine
instance)
Une application est lancée dans un processus et un thread principal
Linux
Une application doit posséder les permissions adéquats pour accéder
aux composants du système (SMS, caméra, . . . )
Saber LAJILI La plateforme Android 19 / 32
20. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Outline
1 Généralités
2 Environnement de développement
3 Architecture
4 Application Android
Compilation
Composants d'une
application Android
Application Hello World
Saber LAJILI La plateforme Android 20 / 32
21. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Compilation
Java source code is converted into Java Byte Code using Java
compiler,
Java byte code is again converted to Dalvik byte code using dex
compiler.
Dex Byte code is converted in to .dex le by Dalvik virtual m/c.
Saber LAJILI La plateforme Android 21 / 32
24. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Outline
1 Généralités
2 Environnement de développement
3 Architecture
4 Application Android
Compilation
Composants d'une
application Android
Application Hello World
Saber LAJILI La plateforme Android 24 / 32
26. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Composants d'une application android
Activité (activity) : implémente des interfaces et les interactions avec
l'utilisateur : classe Activity
Service (service) : composant exécuté en tâche de fond, sans interface
graphique (opération longue ou appel distant) : classe Service
Fournisseur de données (content provider) : gère et partage des
données de l'application (Contact, Agenda) : classe ContentProvider
Récepteur broadcast (broadcast receiver) : réagit à des messages
(signal du batterie), systèmes ou applicatifs: classe BrodcastReceiver
Saber LAJILI La plateforme Android 26 / 32
28. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Outline
1 Généralités
2 Environnement de développement
3 Architecture
4 Application Android
Compilation
Composants d'une
application Android
Application Hello World
Saber LAJILI La plateforme Android 28 / 32
30. Généralités
Environnement de développement
Architecture
Application Android
Compilation
Composants d'une application Android
Application Hello World
Fichier manifest.xml
Fichier de description et de conguration de l'application
structure :
1 La déclaration xmlns
2 Le package de l'application
3 Le contenu de l'application qui peut inclure les éléments suivants:
1 permissions : permission aux ressources (puce, caméra, ...)
2 uses-conguration : navigation supportée (exp: claviers, stylet, ...)
3 uses-feature : spécicités matérielles indispensable ( audio, caméra, ...)
4 supports-screens : spécier les dimentions écran supportées
(smallScreen, largeScreen, ...)
5 instrumentations : activer la surveillance des interactions entre
l'application et le système à travers des tests
6 l'application et ses composants
Saber LAJILI La plateforme Android 30 / 32