Processus de développement de l'architecture du système Android (résumé)

1. Couche d'abstraction matérielle HAL de l'architecture du système Android

1.1 Présentation de HAL

Android 硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节.
C'est-à-dire que la prise en charge du matériel est divisée en deux couches, une couche est placée dans l'espace utilisateur (espace utilisateur) et l'autre couche est placée dans l'espace noyau (espace noyau).Parmi eux, la couche d'abstraction matérielle s'exécute dans l'espace utilisateur et le pilote du noyau Linux Les programmes s'exécutent dans l'espace du noyau.
Pourquoi voulez-vous l'arranger de cette façon ? N'est-il pas possible d'intégrer la couche d'abstraction matérielle et le pilote du noyau ensemble dans l'espace du noyau ?
Du point de vue de l'implémentation technique, c'est possible, mais d'un point de vue commercial, mettre toute la logique de support du matériel dans l'espace noyau peut nuire aux intérêts des fabricants. Nous savons que le droit d'auteur du code source du noyau Linux suit la licence GNU, tandis que le droit d'auteur du code source Android suit la licence Apache.Le premier doit publier le code source lors de la sortie d'un produit, tandis que le second n'a pas besoin de publier le code source. Si tous les codes pris en charge par le matériel sont placés dans la couche de pilote Linux, cela signifie que le code source du pilote doit être divulgué lors de sa sortie, et la divulgation du code source signifie que les paramètres pertinents et la mise en œuvre du matériel Dans la concurrence féroce d'aujourd'hui, cela est très préjudiciable aux fabricants. Par conséquent, Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了de cette manière, les secrets commerciaux peuvent être cachés. C'est précisément à cause de cette superposition qu'Android a été expulsé de l'arbre de code principal du noyau Linux. Pensez-y, le programme pilote placé dans l'espace du noyau d'Android a un support matériel incomplet. Lorsque le noyau Linux est transplanté sur d'autres machines, le matériel est complètement inutilisable en raison du manque de support de la couche d'abstraction matérielle. C'est pourquoi La raison pour laquelle Android est un système ouvert plutôt qu'un système open source .

Mis à part ces débats, apprendre la couche d'abstraction matérielle d'Android est extrêmement utile pour comprendre l'ensemble du système Android, car il implique la couche de pilote matériel, la couche d'abstraction matérielle, la bibliothèque d'exécution et la couche d'infrastructure d'application du système Android de bas en haut . , la figure suivante illustre la position de la couche d'abstraction matérielle dans le système Android et sa relation avec les autres couches :

Puisqu'il s'agit d'un processus d'apprentissage systématique, l'auteur le divisera en six articles pour décrire chaque processus d'apprentissage, notamment :
( 重点)
1. Sur Android 内核源代码工程中编写硬件驱动程序. Référence
2. Dans le système Android 增加C可执行程序来访问硬件驱动程序. Référence
3. Sur Android 硬件抽象层增加接口模块访问硬件驱动程序. Référence
4. Dans le système Android 编写JNI方法在应用程序框架层提供Java接口访问硬件. Reportez-vous à
5. Dans le système Android 应用程序框架层增加硬件服务接口. Reportez-vous à
6. Dans le système Android 编写APP通过应用程序框架层访问硬件服务. faire référence à


insérez la description de l'image ici


L'architecture globale est la suivante :
insérez la description de l'image ici


1.2 Processus de développement HAL

2. Mécanisme de message d'application de l'architecture du système Android

2.1 Analyse du mécanisme de traitement des messages (Looper handler)

référence

2.2 Analyse du modèle de boucle de message de thread

référence

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48433164/article/details/127131764
conseillé
Classement