A partir de Android 14, la interfaz de la HAL de audio definidos con el AIDL estable. Socios y se alienta a los proveedores de SoC a reimplementar su HAL de audio para proporcionar una Interfaz de AIDL.
La extensión de la biblioteca libaudiohal
agrega compatibilidad con el framework para la HAL del AIDL.
Con la implementación del AIDL, la especificación de configuración de la política de audio se
a la HAL del AIDL. Con este cambio, el Administrador de políticas de audio (APM) obtiene
de la HAL en lugar de consumirla del archivo XML proporcionado por el proveedor
.
API de HAL del AIDL de audio
En esta sección, se describen las APIs principales, de efectos y de HAL comunes para AIDL.
Usa la implementación predeterminada de la API de AIDL en
/hardware/interfaces/audio/aidl/default/
como referencia cuando se implementan nuevas versiones de HAL de audio que
interactúan con los controladores del kernel.
Consulta la Archivo README de audio de la HAL de la estructura de directorios de la HAL de audio para el AIDL
HAL principal
Algunas de las interfaces clave de Core HAL: con AIDL son las siguientes:
IModule.aidl
es el punto de entrada a la API.- Las transmisiones son unidireccionales, y AudioFlinger las utiliza para enviar o recibir
audio desde y hacia la HAL a través de
IStreamOut.aidl
yIStreamIn.aidl
. ITelephony.aidl
proporciona controles específicos para las funciones de telefonía.IBluetooth.aidl
proporciona controles de BT SCO y HFP que estaban activos enIPrimaryModule
. en la API de HIDL.IConfig.aidl
proporciona parámetros de configuración en todo el sistema.ISoundDose.aidl
proporciona compatibilidad con dosis de ruido. Para obtener más información, consulta el artículo sobre dosis de ruido.- La versión más reciente de la API de Core HAL en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - La versión lanzada más reciente de la API de Core HAL se encuentra en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
HAL de efectos
Algunas de las interfaces clave de la HAL de efectos, mediante el AIDL, son las siguientes:
IFactory.aidl
es el punto de entrada a la API.Descriptor.aidl
contiene toda la información, como las capacidades y para la implementación de un efecto.Capability.aidl
define las capacidades de efectos que no cambian en el tiempo de ejecución.Parameter.aidl
define todos los parámetros compatibles con la instancia del efecto.IEffect.aidl
se usa para configurar y controlar instancias de efectos particulares.Parcelables específicos del efecto con el nombre del efecto.
La versión más reciente de la API de HAL de efectos en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.La versión lanzada más reciente de la API de HAL de efectos está en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
Consulta Efectos de audio para obtener más información información.
HAL común
Estructuras de datos e interfaces compartidas entre varias HAL, como BT HAL, núcleos de audio y efectos se encuentran en la HAL común.
La última versión de la HAL del AIDL común en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
La versión lanzada más reciente de la API de HAL común se encuentra en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
Tipos de datos estables comunes
Las HAL y el framework usan las definiciones de estructura de datos estable.
La versión más reciente de los tipos de datos estables en desarrollo se encuentra en
/system/hardware/interfaces/media/aidl/android/media/audio/common/
La versión lanzada más reciente de los tipos de datos estables se encuentra en
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
Cómo probar la API de HAL del AIDL de audio
VTS nuevo se proporcionan para la interfaz del AIDL.
No se realizaron cambios en la nueva versión del HAL que puedan afectar la seguridad.