Maison >Opération et maintenance >exploitation et maintenance Linux >Le système Android est-il également basé sur Linux ?
Le système Android est basé sur le système Linux ; Android est le nom du système d'exploitation mobile open source basé sur la plateforme Linux annoncé par Google le 5 novembre 2007. La plateforme se compose d'un système d'exploitation, d'un middleware, d'une interface utilisateur et logiciel d'application.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Le système Android est-il également basé sur le système Linux ?
Introduction au système d'exploitation Android
Android est le nom du système d'exploitation mobile open source basé sur la plateforme Linux annoncé par Google le 5 novembre 2007. La plate-forme comprend le système d'exploitation. Elle se compose d'un middleware, d'une interface utilisateur et d'un logiciel d'application. Il adopte l'architecture de la pile logicielle (Software Stack, également appelée pile logicielle) et est principalement divisé en trois parties. La couche inférieure est basée sur le noyau Linux, développé en langage C, et ne fournit que des fonctions de base ; la couche intermédiaire comprend la bibliothèque de fonctions Library et la machine virtuelle Virtual Machine, développée en C++. La couche supérieure est constituée de divers logiciels d'application, notamment des programmes d'appel, des programmes de messagerie texte, etc. Le logiciel d'application est développé par chaque entreprise elle-même, en utilisant Java dans le cadre du programme.
Le sens original du mot Android fait référence à « robot ». Initialement, Android prenait principalement en charge les téléphones mobiles. Plus tard, après développement et amélioration, il s'est progressivement étendu aux tablettes et à d'autres domaines. conçu pour les logiciels des terminaux mobiles.
Architecture système :
L'architecture système d'Android, comme son système d'exploitation, adopte une architecture en couches. Android est divisé en quatre couches, du niveau élevé au niveau bas, à savoir la couche application, la couche cadre d'application, la couche d'exécution du système et la couche noyau Linux.
1. Applications
Android sera publié avec une série de packages d'applications de base, qui incluent des clients, des programmes de messages courts SMS, des calendriers, des cartes, des navigateurs, des programmes de gestion de contacts, etc. Toutes les applications sont écrites en langage JAVA.
2. Cadre d'application
Les développeurs ont également un accès complet au cadre API utilisé par les applications principales. La conception architecturale de l'application simplifie la réutilisation des composants ; toute application peut publier ses blocs fonctionnels et toute autre application peut utiliser les blocs fonctionnels publiés (mais doit se conformer à la sécurité du framework). De même, le mécanisme de réutilisation des applications permet également aux utilisateurs de remplacer facilement les composants du programme.
3. Bibliothèque d'exécution du système
Android contient des bibliothèques C/C++, qui peuvent être utilisées par différents composants du système Android. Ils fournissent des services aux développeurs via le cadre d'application Android.
4. Couche du noyau Linux
Le noyau Android est une version modifiée du noyau basée sur le noyau Linux. Il fournit des pilotes de périphérique pour prendre en charge la plate-forme Android.
Structure du système :
1. Noyau système
Android fonctionne sur le noyau Linux, mais ce n'est pas GNU/Linux. Parce que la plupart des fonctions prises en charge en général par GNU/Linux ne sont pas prises en charge par Android, notamment Cairo, X11, Alsa, FFmpeg, GTK, Pango et Glibc, etc., ont été supprimées. Android a remplacé Glibc par Bionic, Cairo par Skia, FFmpeg par opencore, etc. Afin de réaliser une application commerciale, Android doit supprimer les parties restreintes par la licence GNU GPL. Par exemple, Android déplace le pilote vers l'espace utilisateur, séparant complètement le pilote Linux du noyau Linux. Bionic/Libc/Kernel/ ne sont pas des fichiers d'en-tête standard du noyau. L'en-tête du noyau Android est généré à partir de l'en-tête du noyau Linux à l'aide d'outils afin de préserver les constantes, les structures de données et les macros.
2. Couche d'abstraction matérielle
Le HAL (Hardware Abstraction Layer) d'Android peut fournir des modules de pilotes matériels sous une forme source fermée. Le but de HAL est de séparer le framework Android du noyau Linux afin qu'Android ne s'appuie pas trop sur le noyau Linux pour réaliser le concept d'indépendance du noyau. Il permet également au développement du framework Android de se développer sans prendre en compte l'implémentation du pilote.
3. Logiciel intermédiaire
Le pont de communication entre le système d'exploitation et l'application est divisé en deux couches : couche fonctionnelle (Bibliothèque) et machine virtuelle (Machine Virtuelle). Bionic est la version améliorée de la libc pour Android. Android inclut également Webkit, le soi-disant Webkit est le moteur derrière le navigateur Safari d'Apple. Surface Flinger affiche du contenu 2D ou 3D sur l'écran. Android utilise la chaîne d'outils (Toolchain) pour le BionicLibc de Google.
Android utilise OpenCORE comme cadre multimédia de base. Open CORE peut être divisé en 7 blocs principaux : PVPlayer, PVAuthor, Codec, PacketVideo Multimedia Framework (PVMF), Operating System Compatibility Library (OSCL), Common et OpenMAX.
Android utilise skia comme moteur graphique principal, associé à OpenGL/ES. Les fonctions de skia et LinuxCairo sont équivalentes, mais comparées à Linux Cairo, les fonctions de skia ne sont que rudimentaires. En 2005, Skia a été racheté par Google Début 2007, le code source de Skia GL a été rendu public. Skia est également le moteur graphique de Google Chrome.
La base de données multimédia d'Android utilise le système de base de données SQLite. Les bases de données sont divisées en bases de données publiques et bases de données privées. Les utilisateurs peuvent obtenir la base de données partagée via la classe ContentResolver (Column).
La couche intermédiaire d'Android est principalement implémentée en Java et utilise une machine virtuelle Dalvik spéciale. La machine virtuelle Dalvik est une machine virtuelle Java « basée sur un registre ». Toutes les variables sont stockées dans le registre temporaire et les instructions de la machine virtuelle sont relativement réduites.
La machine virtuelle Dalvik peut avoir plusieurs instances (Instance). Chaque application Android est exécutée avec sa propre machine virtuelle Dalvik, afin que le système puisse être optimisé lors de l'exécution du programme. La machine virtuelle Dalvik n'exécute pas de bytecode Java (Bytecode), mais exécute un fichier appelé format .dex.
4. Mécanisme d'autorisation de sécurité
Android lui-même est un système d'exploitation avec des autorisations séparées. Dans ce type de système d'exploitation, chaque application s'exécute avec une identité système unique (ID utilisateur Linux et ID de groupe). Chaque partie du système utilise également sa propre méthode d'identification indépendante. C'est ainsi que Linux isole les applications des applications et les applications des systèmes.
Composants d'application :
Les quatre composants majeurs du développement Android sont :
1 Activité : Utilisée pour exprimer des fonctions.
2. Service : exécute les services en arrière-plan et ne fournit pas de présentation d'interface.
3. Récepteur de diffusion (BroadcastReceiver) : utilisé pour recevoir des diffusions.
4. Fournisseur de contenu : prend en charge le stockage et la lecture de données dans plusieurs applications, équivalentes à une base de données.
Recommandations associées : "Tutoriel vidéo Linux"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!