Ab Android 14 ist die Audio-HAL-Schnittstelle definiert mit Stable AIDL. Partner und SoC-Anbietern wird empfohlen, ihren Audio-HAL neu zu implementieren, um eine AIDL-Schnittstelle.
Durch das Erweitern der libaudiohal
-Bibliothek wird die Framework-Unterstützung für AIDL HAL hinzugefügt.
Bei der AIDL-Implementierung ist die Konfigurationsspezifikation der Audiorichtlinie
in AIDL HAL verschoben. Durch diese Änderung erhält der Audio Policy Manager (APM)
Konfiguration aus dem HAL, anstatt sie aus der vom Anbieter bereitgestellten XML-Datei zu verwenden
-Datei.
AIDL HAL-API für Audio
In diesem Abschnitt werden die Core, Effects und Common HAL APIs für AIDL beschrieben.
Standardimplementierung der AIDL API verwenden unter
/hardware/interfaces/audio/aidl/default/
bei der Implementierung neuer Versionen von Audio-HALs, die
Interaktion mit Kernel-Treibern.
Weitere Informationen finden Sie in der Audio-HAL-README-Datei für die Audio-HAL-Verzeichnisstruktur für AIDL.
Core-HAL
Einige der wichtigen Oberflächen von Core HAL: mit AIDL:
IModule.aidl
ist der Einstiegspunkt in die API.- Streams sind unidirektional und werden von AudioFlinger zum Senden oder Empfangen von
Audio zum und vom HAL über
IStreamOut.aidl
undIStreamIn.aidl
. ITelephony.aidl
bietet spezielle Steuerelemente für Telefoniefunktionen.IBluetooth.aidl
bietet BT-SCO- und HFP-Einstellungen, die aufIPrimaryModule
aktiv waren in der HIDL API.IConfig.aidl
stellt systemweite Konfigurationsparameter bereit.ISoundDose.aidl
bietet Unterstützung für die Schalldosis. Weitere Informationen finden Sie unter Tondosis.- Die neueste Version der Core HAL API in Entwicklung befindet sich in
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Die neueste veröffentlichte Version der Core HAL API befindet sich in
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Effekt HAL
Einige der wichtigsten Oberflächen von Effects HAL unter Verwendung von AIDL sind:
IFactory.aidl
ist der Einstiegspunkt in die API.Descriptor.aidl
enthält alle Informationen, z. B. Funktionen und Attribute für eine Effektimplementierung.- In
Capability.aidl
sind Effektfunktionen definiert, die sich während der Laufzeit nicht ändern. Parameter.aidl
definiert alle Parameter, die von der Effektinstanz unterstützt werden.- Mit
IEffect.aidl
werden bestimmte Effektinstanzen konfiguriert und gesteuert. Effektspezifische Parzellen, die nach dem Effekt benannt sind.
Die neueste Version der Effects HAL API befindet sich in
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Die neueste veröffentlichte Version der Effects HAL API ist in
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
Weitere Informationen findest du unter Audioeffekte. Informationen.
Allgemeine HAL
Datenstrukturen und Schnittstellen, die zwischen verschiedenen HALs wie BT HAL, Kernen und Effekte Audio-HALs befinden sich im Common HAL.
Die neueste Version von Common AIDL HAL in Entwicklung ist
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
Die neueste veröffentlichte Version der Common HAL API ist in
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
Gängige stabile Datentypen
Definitionen der stabilen Datenstruktur werden sowohl von HALs als auch vom Framework verwendet.
Die neueste Version der stabilen Datentypen in Entwicklung befindet sich in der
/system/hardware/interfaces/media/aidl/android/media/audio/common/
Die neueste veröffentlichte Version der stabilen Datentypen ist in
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
Audio AIDL HAL API testen
Neue VTS Tests werden für die AIDL-Schnittstelle bereitgestellt.
In der neuen HAL-Version wurden keine Änderungen vorgenommen, die die Sicherheit beeinträchtigen könnten.