Maison Opération et maintenance exploitation et maintenance Linux Le système Android est-il également basé sur Linux ?

Le système Android est-il également basé sur Linux ?

Apr 20, 2023 am 10:25 AM
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.

Le système Android est-il également basé sur Linux ?

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

Comment ouvrir web.xml Comment ouvrir web.xml Apr 03, 2025 am 06:51 AM

Pour ouvrir un fichier web.xml, vous pouvez utiliser les méthodes suivantes: Utilisez un éditeur de texte (tel que le bloc-notes ou TextEdit) pour modifier les commandes à l'aide d'un environnement de développement intégré (tel qu'Eclipse ou NetBeans) (Windows: Notepad web.xml; Mac / Linux: Open -A TextEdit web.xml)

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

À quoi sert le mieux le Linux? À quoi sert le mieux le Linux? Apr 03, 2025 am 12:11 AM

Linux est mieux utilisé comme gestion de serveurs, systèmes intégrés et environnements de bureau. 1) Dans la gestion des serveurs, Linux est utilisé pour héberger des sites Web, des bases de données et des applications, assurant la stabilité et la fiabilité. 2) Dans les systèmes intégrés, Linux est largement utilisé dans les systèmes électroniques intelligents et automobiles en raison de sa flexibilité et de sa stabilité. 3) Dans l'environnement de bureau, Linux fournit des applications riches et des performances efficaces.

Comment est la compatibilité Debian Hadoop Comment est la compatibilité Debian Hadoop Apr 02, 2025 am 08:42 AM

Debianlinux est connu pour sa stabilité et sa sécurité et est largement utilisé dans les environnements de serveur, de développement et de bureau. Bien qu'il y ait actuellement un manque d'instructions officielles sur la compatibilité directe avec Debian et Hadoop, cet article vous guidera sur la façon de déployer Hadoop sur votre système Debian. Exigences du système Debian: Avant de commencer la configuration de Hadoop, assurez-vous que votre système Debian répond aux exigences de fonctionnement minimales de Hadoop, qui comprend l'installation de l'environnement d'exécution Java (JRE) nécessaire et des packages Hadoop. Étapes de déploiement de Hadoop: Télécharger et unzip Hadoop: Téléchargez la version Hadoop dont vous avez besoin sur le site officiel d'Apachehadoop et résolvez-le

Debian Strings est-il compatible avec plusieurs navigateurs Debian Strings est-il compatible avec plusieurs navigateurs Apr 02, 2025 am 08:30 AM

"Debianstrings" n'est pas un terme standard, et sa signification spécifique n'est pas encore claire. Cet article ne peut pas commenter directement la compatibilité de son navigateur. Cependant, si "DebianStrings" fait référence à une application Web exécutée sur un système Debian, sa compatibilité du navigateur dépend de l'architecture technique de l'application elle-même. La plupart des applications Web modernes se sont engagées à compatibilité entre les navigateurs. Cela repose sur les normes Web suivantes et l'utilisation de technologies frontales bien compatibles (telles que HTML, CSS, JavaScript) et les technologies back-end (telles que PHP, Python, Node.js, etc.). Pour s'assurer que l'application est compatible avec plusieurs navigateurs, les développeurs doivent souvent effectuer des tests croisés et utiliser la réactivité

Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Apr 02, 2025 pm 03:48 PM

Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Lorsque vous développez GO, la connexion aux bases de données Oracle est une exigence commune ...

See all articles