Visão geral da camada de abstração de hardware (HAL)

Uma camada de abstração de hardware (HAL) é um tipo de camada de abstração com uma interface padrão para a implementação por fornecedores de hardware. Uma HAL permite que o hardware os fornecedores implementem recursos de nível inferior específicos do dispositivo sem afetar nem modificar o código em camadas de nível superior.

Termos obrigatórios

Veja a seguir uma lista de definições dos termos usados nesta seção do documentação:

Linguagem de definição de interface do Android (AIDL)
Uma linguagem semelhante a Java usada para definir interfaces de maneira independente a linguagem de programação usada. A AIDL permite a comunicação entre Clientes e serviços da HAL.
HAL de vinculação
Uma HAL que se comunica com outros processos usando comunicação entre processos (IPC) do binder chamadas. As HALs Binderized são executadas em um processo separado do cliente que as utiliza. As HALs com Binderized são registradas em um gerenciador de serviços para que os clientes possam acessar as próprias capacidades. As HALs escritas para o Android 8 e versões mais recentes são vinculado.
Cliente HAL
O processo que acessa o serviço HAL.
Interface HAL
A interface comum usada pelo cliente e pelo serviço da HAL para comunicação.
Serviço HAL

O código específico do hardware, como o código que leva para seu pela câmera do dispositivo. Implemente todas as HALs obrigatórias listadas nos matriz de compatibilidade para a versão segmentada na partição do fornecedor. Para mais informações sobre matrizes de compatibilidade, consulte Matrizes de compatibilidade.

Também é possível criar uma nova HAL ou estender a interface de uma HAL para suporte aos recursos exclusivos do seu hardware.

Linguagem de definição de interface de hardware (HIDL)

uma linguagem usada para definir interfaces de forma independente da linguagem de programação usada. O HIDL permite a comunicação entre Clientes e serviços da HAL.

HAL de mesmo processo (SP)

Um conjunto restrito de HALs encapsuladas. A associação ao conjunto é controlada pela Google. As SP HALs incluem:

  • HAL mapeador C estável 5
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (fornecido pelo sistema Android, sempre unido)
  • android.hardware.renderscript@1.0
.
HAL encapsulada

Um serviço HAL que foi criado antes do Android 8, mas que foi encapsulado em um Wrapper AIDL ou HIDL para funcionar com o Android 8 e versões mais recentes.

Qual é a próxima etapa?