En Android 14 y versiones posteriores, la interfaz de la HAL de audio se define con AIDL estable. Se recomienda a los socios y proveedores de SoC que vuelvan a implementar su HAL de audio para proporcionar una interfaz de AIDL.
Extender la biblioteca libaudiohal agrega compatibilidad con el framework para la HAL de AIDL.
Con la implementación de AIDL, la especificación de configuración de la política de audio se mueve a la HAL de AIDL. Con este cambio, el Administrador de políticas de audio (APM) obtiene la configuración de la HAL en lugar de consumirla del archivo XML proporcionado por el proveedor.
API de la HAL de audio de AIDL
En esta sección, se describen las APIs de HAL de Core, Effects y Common para AIDL.
Usa la implementación predeterminada de la API de AIDL en
/hardware/interfaces/audio/aidl/default/
como referencia cuando implementes versiones nuevas de las HAL de audio que
interactúan con los controladores del kernel.
Consulta el archivo README de la HAL de audio para conocer la estructura del directorio de la HAL de audio para AIDL.
HAL de Core
Algunas de las interfaces clave de la HAL de Core, que usan AIDL, son las siguientes:
IModule.aidles el punto de entrada a la API.- Los flujos son unidireccionales y AudioFlinger los usa para enviar o recibir
audio hacia y desde la HAL a través de
IStreamOut.aidlyIStreamIn.aidl. ITelephony.aidlproporciona controles específicos para las funciones de telefonía.IBluetooth.aidlproporciona controles de BT SCO y HFP que estaban enIPrimaryModuleen la API de HIDL.IConfig.aidlproporciona parámetros de configuración en todo el sistema.ISoundDose.aidlproporciona compatibilidad con la dosis de ruido. Para obtener más información, consulta Dosis de ruido.- La versión más reciente de la API de la HAL de Core en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/core/. - La versión lanzada más reciente de la API de la HAL de Core se encuentra en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/.
HAL de Effects
Algunas de las interfaces clave de la HAL de Effects, que usan AIDL, son las siguientes:
IFactory.aidles el punto de entrada a la API.Descriptor.aidlcontiene toda la información, como las capacidades y los atributos para una implementación de efectos.Capability.aidldefine las capacidades de efectos que no cambian en el tiempo de ejecución.Parameter.aidldefine todos los parámetros compatibles con la instancia de efectos.IEffect.aidlse usa para configurar y controlar instancias de efectos particulares.Parcelables específicos de efectos con el nombre del efecto.
La versión más reciente de la API de la HAL de Effects en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/.La versión lanzada más reciente de la API de la HAL de Effects se encuentra en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect.
Consulta los Efectos de audio para obtener más información.
HAL de Common
Las estructuras de datos y las interfaces compartidas entre varias HAL, como las HAL de BT, las HAL de audio de Core y Effects, se encuentran en la HAL de Common.
La versión más reciente de la HAL de Common de AIDL en desarrollo se encuentra en
/hardware/interfaces/audio/aidl/android/hardware/audio/common/.La versión lanzada más reciente de la API de la HAL de Common se encuentra en
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/.
Tipos de datos estables comunes
Las definiciones de estructura de datos estables se usan tanto en las HAL como en el framework.
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/.
Prueba la API de la HAL de audio de AIDL
Se proporcionan pruebas nuevas del VTS para la interfaz de AIDL.
No hay cambios en la nueva versión de la HAL que puedan afectar la seguridad.