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. Un 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)
Un lenguaje similar a Java que se usa para definir interfaces de una manera independiente del lenguaje de programación que se usa. AIDL permite la comunicación entre los clientes y los servicios de HAL.
HAL vinculado
Un HAL que se comunica con otros procesos con llamadas de comunicación entre procesos (IPC) de Binder Los HAL vinculados se ejecutan en un proceso independiente del cliente que los usa. Los HAL vinculados se registran con un administrador de servicios para que los clientes puedan acceder a sus funciones. Los HAL escritos para Android 8 y versiones posteriores están vinculados.
Cliente de HAL
Es el proceso que accede al servicio de HAL.
Interfaz de HAL
Es la interfaz común que usan el cliente y el servicio de HAL para comunicarse.
Servicio de HAL

Es el código específico del hardware, como el código que se comunica con la cámara de tu dispositivo específico. Debes implementar todos los HAL obligatorios que se enumeran en la matriz de compatibilidad para la versión a la que te orientas en la partición del 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 un HAL para admitir las capacidades únicas de tu hardware.

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

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

HAL de mismo proceso (SP)

Un conjunto restringido de HAL unidos. Google controla la membresía en el conjunto. Los HAL de SP incluyen lo siguiente:

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

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

¿Qué sigue?