Descripción general de la capa de abstracción de hardware (HAL)

Una capa de abstracción de hardware (HAL) es un tipo de capa de abstracción con una interfaz estándar que los proveedores de hardware pueden implementar. Una HAL permite a los proveedores de hardware implementar funciones específicas del dispositivo de nivel inferior sin afectar ni modificar el código en capas de nivel superior.

Términos requeridos

A continuación, se incluye una lista de definiciones de los términos que se usan en esta sección de la documentación:

Lenguaje de definición de la interfaz de Android (AIDL)
Lenguaje similar a Java que se usa para definir interfaces de forma independiente del lenguaje de programación que se usa. El AIDL permite la comunicación entre los clientes y los servicios de HAL.
HAL enlazado
Es una HAL que se comunica con otros procesos mediante llamadas de comunicación entre procesos (IPC) de Binder. Las HAL enlazadas se ejecutan en un proceso independiente del cliente que las usa. Las HAL enlazadas se registran con un administrador de servicios para que los clientes puedan acceder a sus capacidades. Las HAL escritas para Android 8 y versiones posteriores se vinculan.
Cliente HAL
Es el proceso que accede al servicio de HAL.
Interfaz del HAL
Es la interfaz común que usan el cliente y el servicio de HAL para la comunicación.
Servicio HAL

Es el código específico de hardware, como el que lleva a la cámara de tu dispositivo específico. Debes implementar todas las HAL obligatorias que se indican en la matriz de compatibilidad de la versión a la que te orientas en la partición de tu proveedor. Para obtener más información sobre las matrices de compatibilidad, consulta Matrices de compatibilidad.

También puedes crear una nueva interfaz de HAL o extender la interfaz de una HAL para admitir las capacidades únicas de tu hardware.

Lenguaje de definición de la interfaz de hardware (HIDL)

Es un lenguaje que se usa para definir interfaces de forma independiente del lenguaje de programación que se usa. El HIDL permite la comunicación entre los clientes y los servicios de HAL.

HAL del mismo proceso (SP)

Un conjunto restringido de HALs unidas. Google controla la membresía del conjunto. Entre las HAL del SP, se incluyen las siguientes:

  • HAL de C Mapper 5 estable
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (proporcionada por el sistema Android, siempre unida)
  • android.hardware.renderscript@1.0
HAL unida

Un servicio de HAL que se creó antes de Android 8, pero que se unió a un wrapper AIDL o HIDL para funcionar con Android 8 y versiones posteriores

¿Qué sigue?