0% ont trouvé ce document utile (0 vote)
32 vues29 pages

Architecture du Système Android

Le chapitre 2 présente l'architecture d'Android, détaillant ses composants clés tels que le noyau, la couche d'abstraction matérielle, les bibliothèques natives, et le framework d'applications. Il décrit également la structure d'un package APK et les composantes d'une application Android, y compris les activités, fragments, et services. L'objectif est de comprendre comment ces éléments interagissent pour offrir une expérience utilisateur sur divers dispositifs.

Transféré par

djihanekhadraoui6
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)
32 vues29 pages

Architecture du Système Android

Le chapitre 2 présente l'architecture d'Android, détaillant ses composants clés tels que le noyau, la couche d'abstraction matérielle, les bibliothèques natives, et le framework d'applications. Il décrit également la structure d'un package APK et les composantes d'une application Android, y compris les activités, fragments, et services. L'objectif est de comprendre comment ces éléments interagissent pour offrir une expérience utilisateur sur divers dispositifs.

Transféré par

djihanekhadraoui6
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

Chapitre 2

Architecture d’Android

Applications Mobiles 1
Objectifs
 Comprendre l'architecture fondamentale
d'Android.
 Explorer les composants clés du système
Android.
 Apprendre comment ces composants
interagissent pour permettre le fonctionnement
du système Android.
 Explorer les composantes d’une application
Android et la structure d’un fichier APK.

Applications Mobiles 2
Plan
1. Introduction
2. Architecture Android
 Noyau (Kernel)
 Hardware Abstraction Layer
 Librairies C/C++ natives
 Machine Virtuelle (ART)
 Framework d‘applications
 Applications Android
3. Structure d’un package .apk
4. Composantes d’applications Android

Applications Mobiles 3
Introduction
 Android est bien plus qu'un système
d'exploitation.
 C'est une architecture complexe qui combine
plusieurs composantes pour offrir une
expérience utilisateur exceptionnelle sur une
grande variété de dispositifs:
 Smartphones, tablettes, téléviseurs intelligents,
montres connectées,…

Applications Mobiles 4
Architecture d’Android

Applications Mobiles 5
Noyau Android

 Le noyau d'Android est basé sur le noyau Linux.


 Il est adapté aux besoins spécifiques des appareils mobiles.
 Fournit des pilotes pour le matériel (Camera,
capteurs, Bluetooth, ….)
 Comprend des fonctionnalités pour la gestion de
l'énergie, de la mémoire, des processus, de la
sécurité, et plus encore.

Applications Mobiles 6
Spécificités du Noyau Android:
1. Binder
 Binder remplace IPC SysV (de Linux)
 Module de communication interprocessus
spécifiquement conçu pour Android.
 Sert à la gestion de la communication et de la
concurrence entre les processus.
 Économie en ressources système
 Conçu pour minimiser les coûts en ressources.
 Partage de données
 Utilisation du mécanisme de partage mémoire
(ashmem driver)

Applications Mobiles 7
Spécificités du Noyau Android :
2. Ashmem
 Ashmem (Android Shared Memory): Gestion
de la Mémoire
 Ashmem est un sous-système de gestion de la
mémoire dans Android.
 Il est similaire à Shared Memory (SHM) défini par
la norme POSIX (Linux), mais propose une API plus
simple et spécifique à Android.

Applications Mobiles 8
Spécificités du Noyau Android :
3. L’accès aux journaux système (logs)
 L’ accès aux journaux système (logs) ne peut
se faire comme sur un système classique.
 Google a donc intégré un logger dans le
noyau. Celui-ci permet d’effectuer une
surveillance via la commande « logcat ».
 "logcat"permet d'afficher en temps réel les
messages du journal système directement sur
l'écran ou de les rediriger vers un fichier

Applications Mobiles 9
Spécificités du Noyau Android :
4. OOM (Out Of Memory) Killer
 Android dispose d'un composant appelé
"OOM killer" (tueur OOM)
 Surveiller l'utilisation de la mémoire
 Prendre des mesures lorsque la mémoire est
presque épuisée.
 Libérer de la mémoire en terminant des
processus qui utilisent trop de mémoire et qui
ne sont pas essentiels pour le fonctionnement
du système.

Applications Mobiles 10
Spécificités du Noyau Android :
Autres différences
 Le noyau Android est optimisé pour gérer
efficacement l'énergie sur les appareils
mobiles.
 Gestion de la mise en veille optimisée,…
 Gestion des alarmes pour les fonctionnalités
de réveil planifié.
….

Applications Mobiles 11
HAL (Hardware Abstraction Layer)
 Abstraction matérielle
 Masque les détails spécifiques du matériel aux
niveaux supérieurs du système.
 Interfaces standardisées (API HAL)
 Définit des interfaces normalisées pour différents
composants matériels (ex. : HAL de caméra, HAL de
capteur, HAL d'affichage).
 Portabilité et compatibilité
 Permet aux applications Android de s'exécuter sur
divers appareils Android, indépendamment des
différences matérielles.

Applications Mobiles 12
Librairies C/C++ natives
 Comprend diverses bibliothèques principales
C/C++:
 SSL/TLS,
 libc,
 Graphics,
 SQLite,
 Webkit,
 OpenGL, etc.

Applications Mobiles 13
Android Runtime (ART) : Environnement
d'Exécution d'Android
 Remplacement de Dalvik :
 ART remplace Dalvik en tant qu'environnement
d'exécution par défaut dans les versions Android
5.0 et ultérieures.
 Compilation AOT (Ahead-Of-Time) :
 ART utilise la compilation AOT pour convertir le
bytecode des applications Android en code natif
(Fichier ELF) au moment de l'installation,
améliorant ainsi l'efficacité de l'exécution.

Applications Mobiles 14
Framework d'Applications (Java API
Framework)
 Fournit les classes utilisées pour créer des
applications Android.
 Gère l'interface utilisateur et les ressources
des applications.
 Comprend plusieurs services:
 Service de téléphonie, les services de localisation,
le gestionnaire de notifications, le service NFC, le
système de visualisation, etc.

Applications Mobiles 15
Applications

 Les applications natives et tierces


 Les contacts, la messagerie électronique, la
musique, la galerie, l'horloge, les jeux, etc.,
 La couche d'application s'exécute dans le
cadre d'exécution d'Android à l'aide des
classes et des services mis à disposition à
partir du Framework d'applications.

Applications Mobiles 16
Structure d’un package .apk (Android
Package)
 Un package android
.apk contient
plusieurs fichiers et
dossiers emballés
sous
forme d'un package
avec l'extension .apk.

Applications Mobiles 17
Structure d’un package .apk (Android
Package)
 [Link]: décrit les informations
essentielles sur l’application au système d'exploitation
Android et à Google Play. Le fichier manifeste doit
déclarer les éléments suivants :
 Les composants de l'application, y compris toutes les
activités, services, récepteurs de diffusion et fournisseurs
de contenu.
 Les autorisations dont l'application a besoin pour accéder
aux parties protégées du système ou à d'autres
applications.
 Les fonctionnalités matérielles et logicielles requises par
l'application, qui affectent les appareils pouvant installer
l'application à partir de Google Play

Applications Mobiles 18
Structure d’un package .apk (Android
Package)
 [Link]: .dex (Dalvik Executable) est un
format de fichier pour contenir le bytecode
exécutable.
 Avant Android 5.0, les applications Android étaient
exécutées sur la Dalvik Virtual Machine. Le bytecode
Java source (.class) était converti en bytecode Dalvik
(.dex) pour être exécuté par la machine virtuelle
Dalvik.
 À partir d'Android 5.0, Android a introduit Android
Runtime (ART) en remplacement de Dalvik. ART utilise
toujours des fichiers .dex, mais il les compile en code
natif au moment de l'installation.

Applications Mobiles 19
Structure d’un package .apk (Android
Package)
 res (dossier): "res" (abréviation de "resources")
joue un rôle crucial dans la gestion des ressources
de l'application Android. Les ressources
comprennent généralement des éléments tels
que
 des images,
 des fichiers de mise en page (layouts),
 des fichiers XML,
 des valeurs (comme les chaînes de texte),
 et d'autres éléments nécessaires à l'interface
utilisateur et au fonctionnement de l'application

Applications Mobiles 20
Structure d’un package .apk (Android
Package)
 [Link] et [Link]: ces fichiers sont utilisés
dans le processus de signature numérique des
fichiers APK (ou JAR) pour assurer l'authenticité
et l'intégrité du contenu.
 Android utilise ces certificats pour vérifier que le
fichier n'a pas été altéré et qu'il provient bien du
signataire attendu.
 Cela contribue à la sécurité en garantissant que le
code exécuté est celui qui a été approuvé par le
signataire autorisé.

Applications Mobiles 21
Composantes d’une Application

1. Activities
2. Fragments
3. Intents
4. Broadcast receivers
5. Content providers
6. Services

Applications Mobiles 22
Composantes d’une Application:
1. Activities
 Représentent les écrans
individuels de l'application.
 Chaque écran de
l'application est
généralement une activité
distincte.
 Les activités gèrent
l'interface utilisateur et
l'interaction de l'utilisateur
avec l'application.

Applications Mobiles 23
Composantes d’une Application:
2. Fragments

 Un fragment représente
un comportement ou
une partie de l'interface
utilisateur au sein de
l'activité.

Applications Mobiles 24
Composantes d’une Application:
3. Intents
 Les intentions sont des
messages asynchrones.
Peuvent êtres utilisées
pour demander une action
à une autre composantes
d'application.

Applications Mobiles 25
Composantes d’une Application:
4. Broadcast receivers
 Permettent aux
applications
de recevoir des
notifications d'autres
applications
et du système lui-même.

Applications Mobiles 26
Composantes d’une Application:
5. Content providers

 Offrent un mécanisme
pour partager des données
entre les applications.

Applications Mobiles 27
Composantes d’une Application:
6. Services
 Exécutent des tâches en
arrière-plan (traitement des
données, intentions de
démarrage et notifications,
etc.) sans présenter
d'interface utilisateur.

Applications Mobiles 28
Cycle de vie d’une Activity

Applications Mobiles 29

Vous aimerez peut-être aussi