Processo de desenvolvimento da arquitetura do sistema Android (resumo)

1. Camada de abstração de hardware HAL da arquitetura do sistema Android

1.1 Visão geral do HAL

Android 硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节.
Ou seja, o suporte para hardware é dividido em duas camadas, uma camada é colocada no espaço do usuário (User Space), e a outra camada é colocada no espaço do kernel (Kernel Space). espaço do usuário e os Programas do driver do kernel do Linux são executados no espaço do kernel.
Por que você quer organizar isso dessa maneira? Não é viável integrar a camada de abstração de hardware e o driver do kernel juntos no espaço do kernel?
Do ponto de vista da implementação técnica é possível, mas do ponto de vista comercial, colocar toda a lógica de suporte para hardware no espaço do kernel pode prejudicar os interesses dos fabricantes. Sabemos que os direitos autorais do código-fonte do kernel Linux seguem a licença GNU, enquanto os direitos autorais do código-fonte do Android seguem a licença Apache. O primeiro deve publicar o código-fonte ao lançar um produto, enquanto o segundo não precisa publicar o Código fonte. Se todos os códigos suportados pelo hardware forem colocados na camada do driver Linux, isso significa que o código-fonte do driver deve ser divulgado quando for lançado, e a divulgação do código-fonte significa que os parâmetros relevantes e a implementação do hardware são divulgados.Na acirrada competição de hoje, isso é muito prejudicial para os fabricantes. Portanto, Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了desta forma, os segredos comerciais podem ser ocultados. É precisamente por causa dessa camada que o Android foi expulso da árvore de código principal do kernel do Linux. Pense nisso, o programa de driver colocado no espaço do kernel do Android tem suporte de hardware incompleto. Quando o kernel do Linux é transplantado para outras máquinas, o hardware fica completamente inutilizável devido à falta de suporte da camada de abstração de hardware. É por isso que o motivo Android é um sistema aberto em vez de um sistema de código aberto .

Deixando esses argumentos de lado, aprender a camada de abstração de hardware do Android é extremamente útil para entender todo o sistema Android, porque envolve a camada de driver de hardware, camada de abstração de hardware, biblioteca de tempo de execução e camada de estrutura de aplicativo do sistema Android de baixo para cima . A figura a seguir ilustra a posição da camada de abstração de hardware no sistema Android e sua relação com outras camadas:

Por se tratar de um processo sistemático de aprendizagem, o autor irá dividi-lo em seis artigos para descrever cada processo de aprendizagem, incluindo:
( 重点)
1. No Android 内核源代码工程中编写硬件驱动程序. Referência
2. No sistema Android 增加C可执行程序来访问硬件驱动程序. Referência
3. No Android 硬件抽象层增加接口模块访问硬件驱动程序. Referência
4. No sistema Android 编写JNI方法在应用程序框架层提供Java接口访问硬件. Consulte
5. No sistema Android 应用程序框架层增加硬件服务接口. Consulte
6. No sistema Android 编写APP通过应用程序框架层访问硬件服务. referir-se


insira a descrição da imagem aqui


A arquitetura geral é a seguinte:
insira a descrição da imagem aqui


1.2 Processo de desenvolvimento HAL

2. Mecanismo de mensagem do aplicativo da arquitetura do sistema Android

2.1 Análise do mecanismo de processamento de mensagens (manipulador de Looper)

referência

2.2 Análise do modelo de loop de mensagem de thread

referência

Acho que você gosta

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