Proceso de desarrollo de la arquitectura del sistema Android (resumen)

1. Capa de abstracción de hardware HAL de la arquitectura del sistema Android

1.1 Descripción general de HAL

androide 硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节_
Es decir, el soporte para hardware se divide en dos capas, una capa se ubica en el espacio del usuario (User Space), y la otra capa se ubica en el espacio del kernel (Kernel Space), entre ellas, la capa de abstracción de hardware se ejecuta en espacio de usuario, y los programas del controlador del kernel de Linux se ejecutan en el espacio del kernel.
¿Por qué quieres organizarlo de esta manera? ¿No es factible integrar la capa de abstracción de hardware y el controlador del kernel en el espacio del kernel?
Desde el punto de vista de la implementación técnica, es posible, pero desde el punto de vista comercial, poner toda la lógica de soporte para el hardware en el espacio del núcleo puede dañar los intereses de los fabricantes. Sabemos que los derechos de autor del código fuente del kernel de Linux siguen la Licencia GNU, mientras que los derechos de autor del código fuente de Android siguen la Licencia Apache. El primero debe publicar el código fuente al lanzar un producto, mientras que el segundo no necesita publicar el código fuente. Si todos los códigos admitidos por el hardware se colocan en la capa del controlador de Linux, significa que el código fuente del controlador debe divulgarse cuando se lanza, y la divulgación del código fuente significa que los parámetros relevantes y la implementación del hardware son revelados En la feroz competencia actual, esto es muy perjudicial para los fabricantes. Por lo tanto, Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了de esta forma se pueden ocultar los secretos comerciales. Es precisamente debido a esta estratificación que Android fue expulsado del árbol de código de la línea principal del kernel de Linux. Piénselo, el programa controlador colocado en el espacio del kernel de Android tiene un soporte de hardware incompleto. Cuando el kernel de Linux se trasplanta a otras máquinas, el hardware es completamente inutilizable debido a la falta de soporte de la capa de abstracción de hardware. Esta es la razón por la cual Android es un sistema abierto en lugar de un sistema de código abierto .

Dejando de lado estos argumentos, aprender la capa de abstracción de hardware de Android es extremadamente útil para comprender todo el sistema Android, ya que involucra la capa de controlador de hardware, la capa de abstracción de hardware, la biblioteca de tiempo de ejecución y la capa de marco de aplicación del sistema Android de abajo hacia arriba Espere, el La siguiente figura ilustra la posición de la capa de abstracción de hardware en el sistema Android y su relación con otras capas:

Dado que este es un proceso de aprendizaje sistemático, el autor lo dividirá en seis artículos para describir cada proceso de aprendizaje, incluidos:
( 重点)
1. En Android 内核源代码工程中编写硬件驱动程序. Referencia
2. En el sistema Android 增加C可执行程序来访问硬件驱动程序. Referencia
3. En Android 硬件抽象层增加接口模块访问硬件驱动程序. Referencia
4. En el sistema Android 编写JNI方法在应用程序框架层提供Java接口访问硬件. Consulte
5. En el sistema Android 应用程序框架层增加硬件服务接口. Consulte
6. En el sistema Android 编写APP通过应用程序框架层访问硬件服务. Referirse a


inserte la descripción de la imagen aquí


La arquitectura general es la siguiente:
inserte la descripción de la imagen aquí


1.2 Proceso de desarrollo de HAL

2. Mecanismo de mensajes de aplicación de la arquitectura del sistema Android

2.1 Análisis del mecanismo de procesamiento de mensajes (controlador Looper)

referencia

2.2 Análisis del modelo de bucle de mensajes de subprocesos

referencia

Supongo que te gusta

Origin blog.csdn.net/weixin_48433164/article/details/127131764
Recomendado
Clasificación