A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release en lugar de aosp-main para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La capa de abstracción de hardware (HAL) de audio de Android conecta las APIs de framework específicas de audio de nivel superior a android.media, los controladores y el hardware de audio subyacentes. El HAL de audio define la interfaz estándar a la que llaman los servicios de audio. Se debe implementar el HAL de audio para que el hardware de audio funcione correctamente.
En esta página, se proporciona una descripción general del HAL de audio y detalles de su API y requisitos de implementación.
Interfaz de HAL de audio
A partir de Android 14, la interfaz de la HAL de audio se define con el AIDL. En versiones anteriores, la interfaz de la HAL de audio se define con HIDL.
Se recomienda a los socios y proveedores de SoC que vuelvan a implementar su HAL de audio para proporcionar una interfaz de AIDL.
Las nuevas APIs de HAL para las funciones agregadas en Android 14 y versiones posteriores solo son compatibles con la implementación de la interfaz de AIDL.
A partir de Android 14, no se agrega ninguna API nueva a la implementación de HIDL.
Si cambias a AIDL y das de baja y quitas la compatibilidad con versiones anteriores principales de la HAL de audio, se libera espacio en el disco y RAM en los dispositivos. Esto genera una UX más fluida y permite funciones más nuevas visibles para los usuarios finales.
El sistema HAL de audio contiene las siguientes APIs:
El HAL principal es la API principal que usa AudioFlinger para reproducir audio y controlar su enrutamiento.
El framework de efectos usa la API de HAL de efectos para controlar los efectos de audio.
También puedes configurar efectos de preprocesamiento, como control de ganancia automático y reducción de ruido, a través de la API de HAL de efectos.
La API de HAL común es una biblioteca de tipos de datos comunes que usan las APIs de HAL de Core y Effects. El HAL común no tiene interfaces ni pruebas de VTS asociadas, ya que solo define estructuras de datos.
Además de implementar el HAL de audio y crear el archivo de configuración de la política de audio, debes cumplir con los siguientes requisitos de HAL:
Si un perfil de entrada admite la captura para Sound Trigger (captura desde el búfer de DSP de palabras clave), la implementación debe admitir la cantidad de transmisiones activas en este perfil que corresponde a la cantidad de sesiones simultáneas que admite el HAL de Sound Trigger.
La simultaneidad de la TX de llamadas de voz y la captura desde el procesador de la app, como se detalla en la página Captura simultánea
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-26 (UTC)"],[],[],null,["# Audio HAL\n\nAndroid's Audio hardware abstraction layer (HAL) connects the higher-level,\naudio-specific framework APIs into\n[`android.media`](http://developer.android.com/reference/android/media/package-summary.html)\nthe underlying audio drivers and hardware. The Audio HAL defines the standard\ninterface that audio services call in to. The Audio HAL must be implemented for\nthe audio hardware to function correctly.\n\nThis page gives an overview of the Audio HAL and provides details of its API and\nimplementation requirements.\n\nAudio HAL interface\n-------------------\n\nStarting with Android 14, the Audio HAL interface is\ndefined using [AIDL](/docs/core/audio/aidl-implement). For past versions, the\nAudio HAL interface is defined using [HIDL](/docs/core/audio/hidl-implement).\nPartners and SoC vendors are encouraged to reimplement their\nAudio HAL to provide an AIDL interface.\n\nNew HAL APIs for features added in Android 14 and\nhigher are supported **only** with the implementation of the AIDL interface.\nStarting with Android 14, no new API is added to the\nHIDL implementation.\n\nSwitching to AIDL and deprecating and removing support for previous\nmajor Audio HAL versions frees up disk space and RAM on devices. This\nleads to a smoother UX and allows for newer user-visible features for end users.\n\nSee [AIDL and HIDL Audio HAL comparison](/docs/core/audio/aidl-hidl-comp)\nfor more information about the differences between the AIDL and HIDL Audio HAL.\n\n### Audio HAL API\n\nThe Audio HAL contains the following APIs:\n\n- The Core HAL is the main API used by AudioFlinger to play audio and control the audio routing.\n- The Effects HAL API is used by the effects framework to control audio effects.\n You can also configure [preprocessing effects](/devices/audio/implement-pre-processing)\n such as automatic gain control and noise suppression through the Effects HAL\n API.\n\n | **Note:** The Audio Effects HAL API is similar to the [framework effects APIs](https://developer.android.com/reference/android/media/audiofx/AudioEffect).\n- The Common HAL API is a library of common data types used by the Core and\n Effects HAL APIs. The Common HAL has no interfaces and no associated VTS\n tests as it defines only data structures.\n\nSee [AIDL Audio HAL](/docs/core/audio/aidl-implement) and\n[HIDL Audio HAL](/docs/core/audio/hidl-implement) for specific details\nrelated to AIDL and HIDL respectively.\n| **Note:** Starting with Android 13, Audio HAL is updated to version 7.1.\n\nRequirements\n------------\n\nIn addition to implementing the Audio HAL and creating the audio policy\nconfiguration file, you must adhere to the following HAL requirements:\n\n- If capture for Sound Trigger (capture from hotword DSP buffer) is supported\n by one input profile, the implementation must support the number of active\n streams on this profile corresponding to the number of concurrent sessions\n supported by Sound Trigger HAL.\n\n | **Note:** The implementation of the [Sound trigger HAL](/docs/core/audio/sound-trigger) is located at `/hardware/interfaces/soundtrigger` and is coupled with the Audio HAL.\n- Concurrency of voice call TX and capture from the app processor as\n detailed on the [Concurrent capture](/docs/core/audio/concurrent) page."]]