Le Système d'Exploitation Android
Support de Cours Théorique et Pratique
Source officielle : [Link] | Domaine : Systèmes d'Exploitation (OS)
I. Introduction à Android
1. C'est quoi Android ?
Android est un système d'exploitation (OS) mobile open-source basé sur le noyau Linux. Il a été conçu
principalement pour les appareils tactiles tels que les smartphones et les tablettes, mais son écosystème
s'est élargi pour inclure les téléviseurs (Android TV), les voitures (Android Auto) et les objets connectés
(Wear OS).
Initialement développé par la start-up Android Inc. (fondée en 2003 par Andy Rubin), le projet a été
racheté par Google en 2005. Sa force repose sur le fait qu'il est gratuit et open-source (géré via l'AOSP -
Android Open Source Project), ce qui permet aux constructeurs (Samsung, Xiaomi, Oppo, etc.) de le
personnaliser entièrement.
2. Relation entre Android et Linux
Il est fréquent d'entendre qu'Android "est" Linux, mais la réalité est plus subtile : Android est basé sur
le noyau (kernel) Linux, mais ce n'est pas une distribution Linux classique (comme Ubuntu ou
Debian).
• Ce qu'Android emprunte à Linux : Android utilise le noyau Linux pour la gestion du matériel
(drivers/pilotes), la gestion de la mémoire, la sécurité (permissions d'accès) et la gestion des
processus.
• Ce qui les différencie : Android n'inclut pas le système de fenêtrage standard de Linux (X11/
Wayland), ni les bibliothèques GNU standard (comme Glibc). Android possède sa propre bibliothèque
C (Bionic) et sa propre machine virtuelle pour exécuter les applications de manière isolée et
sécurisée.
II. Caractéristiques d'Android
• Open Source (AOSP) : Le code source est accessible librement à tous, permettant une modification
et une adaptation poussées par les constructeurs et développeurs.
• Multitâche réel : Capacité d'exécuter plusieurs applications ou processus en arrière-plan de manière
optimisée pour économiser l'énergie.
• Connectivité étendue : Prise en charge native du Wi-Fi, Bluetooth, 4G/5G, NFC, et de la gestion de
réseaux cellulaires complexes.
E.S.R.I. — Cours Android Page 1 / 5
• Stockage de données intégré : Intégration d'une base de données relationnelle légère ( SQLite )
pour la gestion et la persistance des données locales des applications.
• Écosystème d'applications riche : Accès au catalogue d'applications via le Google Play Store (ou
d'autres magasins alternatifs).
• Portabilité matérielle : Conçu pour fonctionner sur une immense variété d'architectures de
processeurs (majoritairement ARM, mais aussi x86).
III. Histoire et Évolution d'Android
L'histoire d'Android est marquée par une évolution rapide et une tradition originale : nommer chaque
version majeure d'après un dessert ou une douceur sucrée (jusqu'à la version 10 qui marque un virage
plus sobre).
E.S.R.I. — Cours Android Page 2 / 5
Version Nom de code Année Innovations marquantes
Intégration initiale de l'Android
Android 1.0 / 1.1 Alpha / Beta 2008
Market, Gmail et Google Maps.
Introduction du premier clavier
Android 1.5 Cupcake 2009
virtuel sur l'écran et des widgets.
Optimisation de la vitesse
Android 2.2 Froyo 2010 (compilateur JIT) et partage de
connexion USB/Wi-Fi.
Unification de l'interface graphique
Android 4.0 Ice Cream Sandwich 2011
pour smartphones et tablettes.
Introduction du design épuré
Android 5.0 Lollipop 2014 Material Design et passage à
l'environnement ART.
Mode Picture-in-Picture (PiP),
Android 8.0 Oreo 2017 démarrage plus rapide, limites
strictes en arrière-plan.
Mode sombre natif, navigation par
Android 10 Q 2019 gestes, focus renforcé sur la vie
privée.
Interface dynamique Material You
Android 12 / 13 S/T 2021-22 (adaptation des couleurs selon le
fond d'écran).
Optimisation accrue de la batterie,
Android 14 / 15 U/V 2023-24+ intégration poussée de l'IA et
sécurité renforcée.
IV. Architecture du Système Android
L'architecture d'Android est organisée sous forme de pile logicielle comprenant 5 couches principales.
Chaque couche offre des services spécifiques à la couche supérieure :
E.S.R.I. — Cours Android Page 3 / 5
1. Applications (Système & Tierces : Appel, SMS, Jeux...)
2. Framework d'Application (Managers : Window, Activity, Package)
3. Android Runtime (ART) & Bibliothèques Natives (C/C++)
4. Couche d'Abstraction Matérielle (HAL)
5. Noyau Linux (Pilotes matériels, Mémoire, Sécurité, Énergie)
1. Le Noyau Linux (Linux Kernel) : La base matérielle. Gère l'accès aux composants physiques, la
mémoire vive, les processus et la sécurité de bas niveau.
2. La Couche d'Abstraction Matérielle (HAL) : Elle fournit des interfaces standard permettant aux
fonctionnalités matérielles de communiquer avec les couches supérieures sans se soucier du modèle
exact du composant (ex: appareil photo, capteurs).
3. Android Runtime (ART) & Bibliothèques Natives :
◦ ART : L'environnement d'exécution qui compile le code de l'application (bytecode DEX) en code
machine natif pour optimiser les performances de l'appareil.
◦ Bibliothèques C/C++ : Bibliothèques système essentielles telles que WebKit (rendu web),
OpenMAX (multimédia) ou SQLite.
4. Le Framework d'Application (Application Framework) : Les blocs de construction (APIs en Java/
Kotlin) mis à disposition des développeurs pour interagir avec le système (ex: Activity Manager pour le
cycle de vie des écrans).
5. Les Applications : La couche supérieure visible par l'utilisateur final.
V. Partie Pratique : Initiation au Développement
Pour la mise en œuvre pratique de ce module de cours, les étudiants doivent appréhender
l'environnement de développement standard.
E.S.R.I. — Cours Android Page 4 / 5
1. Configuration de l'environnement (Outils de travail)
• Android Studio : L'IDE officiel (Environnement de Développement Intégré) basé sur IntelliJ
IDEA.
• SDK Android : Ensemble d'outils, d'émulateurs et de bibliothèques requis pour compiler une
application selon la version d'Android ciblée.
• Langages de programmation : Kotlin (langage moderne et officiel recommandé par Google)
ou Java. Le design des interfaces graphiques se fait à l'aide de fichiers XML ou via Jetpack
Compose.
2. Structure d'un projet de base
Un projet Android minimal se compose de trois éléments fondamentaux :
• [Link] (ou .java ) : Le code logique qui pilote le comportement de l'écran principal et
l'interaction avec l'utilisateur.
• activity_main.xml : Le fichier de mise en page (Layout) décrivant l'interface graphique (boutons,
zones de texte, images).
• [Link] : Le fichier de configuration crucial qui déclare tous les composants de
l'application, son identifiant unique, ainsi que les permissions système requises (accès Internet,
appareil photo, stockage).
E.S.R.I. — Cours Android Page 5 / 5