Una capa de abstracción de hardware (HAL) es un tipo de capa de abstracción con una interfaz estándar para que los proveedores de hardware la implementen. Una HAL permite que los proveedores de hardware implementen funciones de nivel inferior específicas del dispositivo sin afectar ni modificar el código en las 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)
- Es 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 vinculada
- Es una HAL que se comunica con otros procesos mediante llamadas de comunicación entre procesos (IPC) de Binder. Las HAL vinculadas se ejecutan en un proceso independiente del cliente que las usa. Las HAL vinculadas 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 están vinculadas.
- 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 todas las HAL requeridas que se indican en la matriz de compatibilidad para la versión a la que segmentas en tu 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 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 una manera independiente del lenguaje de programación que se usa. HIDL permite la comunicación entre los clientes y los servicios de HAL.
- HAL de mismo proceso (SP)
Es un conjunto restringido de HAL encapsuladas. Google controla la membresía del conjunto. Las HAL de SP incluyen lo siguiente:
- HAL de asignador C estable 5
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (proporcionado por el sistema Android, siempre encapsulado)
- android.hardware.renderscript@1.0
- HAL encapsulada
Es un servicio de HAL que se creó antes de Android 8, pero que se encapsuló en un encapsulador AIDL o HIDL para funcionar con Android 8 y versiones posteriores.
Próximos pasos
- Para aprender a implementar un servicio de HAL, consulta AIDL para HAL.
- Para aprender a crear o extender una HAL existente, consulta a Interfaces extendidas adjuntas.