Le fonctionnement d'Android est complexe, mais peut être décomposé en plusieurs couches et processus clés :
1. Le noyau Linux : Tout en bas se trouve le noyau Linux, une version modifiée spécifiquement adaptée aux appareils mobiles. Ce noyau fournit des services système de base tels que la gestion de la mémoire, la gestion des processus, les pilotes de périphériques (pour écran, caméra, etc.) et la mise en réseau. C'est la fondation sur laquelle tout le reste est construit.
2. Couche d'abstraction matérielle (HAL) : Cette couche se situe au-dessus du noyau et sert d'intermédiaire entre le noyau et l'environnement d'exécution Android. Il fournit une interface standardisée pour les composants matériels, permettant à Android d'interagir avec différentes configurations matérielles sans avoir besoin d'être réécrit pour chaque appareil. Cette abstraction permet une indépendance matérielle dans les niveaux supérieurs de la pile logicielle.
3. Exécution Android (ART) : C'est ici que les applications Android s'exécutent. ART (anciennement Dalvik) est une machine virtuelle qui exécute des applications Android écrites en Java ou Kotlin (compilées en bytecode). Il gère l'allocation de mémoire, le garbage collection et l'exécution du code de l'application. ART améliore les performances par rapport à son prédécesseur, Dalvik, grâce à une compilation anticipée.
4. Bibliothèques : Une collection de bibliothèques natives fournit des services système aux applications et au framework Android. Ces bibliothèques fournissent des fonctionnalités telles que les graphiques (OpenGL), la lecture multimédia, la gestion de bases de données (SQLite) et la mise en réseau.
5. Cadre Android : Cette couche fournit un ensemble d'API (interfaces de programmation d'applications) que les développeurs d'applications peuvent utiliser pour accéder aux services système et créer leurs applications. Cela inclut des éléments tels que les composants de l'interface utilisateur (boutons, champs de texte, etc.), les services de localisation et l'accès à la caméra.
6. Candidatures : Il s'agit de la couche supérieure, où résident toutes les applications que vous utilisez. Ces applications sont créées à l’aide du framework Android et exécutées au sein de l’ART. Cela inclut les applications préinstallées (telles que le numéroteur téléphonique et l'application de messagerie) ainsi que les applications que vous téléchargez depuis le Google Play Store.
Le flux de processus ressemble généralement à ceci :
1. L'utilisateur interagit avec une application (par exemple, appuie sur une icône).
2. Le système Android lance l'application.
3. Le code de l'application s'exécute dans l'ART.
4. L'application utilise le framework Android pour accéder aux services du système (par exemple, pour afficher des informations sur l'écran ou accéder à la caméra).
5. Le framework interagit avec les bibliothèques et le HAL pour communiquer avec le matériel.
6. Le noyau gère les ressources matérielles.
Concepts clés pour comprendre le fonctionnement d'Android :
* Processus : Chaque application s'exécute selon son propre processus, offrant isolation et sécurité.
* Fils : Les applications peuvent créer plusieurs threads pour effectuer des tâches simultanément.
* Intentions : Un mécanisme de communication entre différentes applications et composants.
* Services : Processus en arrière-plan qui s'exécutent indépendamment de l'interface utilisateur.
* Récepteurs de diffusion : Composants qui répondent aux événements à l'échelle du système (par exemple, batterie faible).
* Fournisseurs de contenu : Un mécanisme de partage de données entre applications.
En bref, le fonctionnement d'Android est une danse soigneusement orchestrée entre le matériel, un noyau Linux, un environnement d'exécution, des bibliothèques et des applications, tous travaillant ensemble pour offrir une expérience utilisateur transparente. L'architecture en couches permet la flexibilité, l'évolutivité et la maintenabilité.
|