Począwszy od Androida 14 interfejs Audio HAL jest definiowany za pomocą stabilnego AIDL. Zachęcamy partnerów i producentów układów SoC do ponownego zaimplementowania interfejsu Audio HAL w celu udostępnienia interfejsu AIDL.
Rozszerzenie biblioteki libaudiohal
umożliwia obsługę interfejsu AIDL HAL.
W ramach implementacji AIDL specyfikacja konfiguracji zasad dotyczących dźwięku została przeniesiona do interfejsu HAL AIDL. Dzięki tej zmianie menedżer zasad dotyczących dźwięku (APM) pobiera konfigurację z HAL, zamiast używać jej z pliku XML dostarczonego przez dostawcę.
Interfejs API HAL dla Audio AIDL
W tej sekcji opisano Core, Effects i Common HAL API dla AIDL.
Podczas implementowania nowych wersji interfejsu Audio HAL, które współpracują z sterownikami jądra, użyj domyślnej implementacji interfejsu AIDL API w pliku /hardware/interfaces/audio/aidl/default/
.
Strukturę katalogu Audio HAL dla AIDL znajdziesz w pliku README Audio HAL.
Core HAL
Oto niektóre z głównych interfejsów Core HAL, które korzystają z AIDL:
IModule.aidl
to punkt wejścia do interfejsu API.- Strumienie są jednokierunkowe i służą do wysyłania lub odbierania dźwięku do HAL i z HAL za pomocą
IStreamOut.aidl
iIStreamIn.aidl
. ITelephony.aidl
zawiera ustawienia związane z funkcjami telefonicznymi.IBluetooth.aidl
udostępnia elementy sterujące BT SCO i HFP, które były dostępne w interfejsie HIDL API w wersjiIPrimaryModule
.IConfig.aidl
udostępnia parametry konfiguracji na poziomie całego systemu.ISoundDose.aidl
zapewnia obsługę dźwięku. Więcej informacji znajdziesz w sekcji Dawka dźwięku.- Najnowsza wersja interfejsu Core HAL w trakcie opracowywania to
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Najnowsza wydana wersja interfejsu Core HAL API to
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Efekty HAL
Oto niektóre z najważniejszych interfejsów Efektów HAL korzystających z AIDL:
IFactory.aidl
to punkt wejścia do interfejsu API.Descriptor.aidl
zawiera wszystkie informacje, takie jak możliwości i atrybuty implementacji efektu.Capability.aidl
określa możliwości efektów, które nie zmieniają się w czasie działania.Parameter.aidl
definiuje wszystkie parametry obsługiwane przez instancję efektu.IEffect.aidl
służy do konfigurowania i sterowania konkretnymi instancjami efektów.Elementy pakietu zależne od efektu mają nazwy zgodne z danym efektem.
Najnowsza wersja interfejsu Effects HAL API w trakcie opracowywania to
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Najnowsza opublikowana wersja interfejsu Effects HAL API znajduje się w
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Więcej informacji znajdziesz w artykule Efekty dźwiękowe.
Wspólny HAL
Struktury danych i interfejsy wspólne dla różnych HAL-i, takie jak HAL Bluetooth, HAL podstawowy i HAL efektów dźwiękowych, znajdują się w ramach wspólnego interfejsu HAL.
Najnowsza wersja interfejsu Common AIDL HAL w trakcie opracowywania to
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Najnowsza opublikowana wersja interfejsu Common HAL API znajduje się w pliku
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
Typy stabilnych danych
Definicje stabilnej struktury danych są używane zarówno przez HAL, jak i platformę.
Najnowsza wersja stabilnych typów danych w trakcie opracowywania jest dostępna w
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Najnowsza opublikowana wersja stabilnych typów danych znajduje się w
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Testowanie interfejsu Audio AIDL HAL API
Dostępne są nowe testy VTS dotyczące interfejsu AIDL.
Nowa wersja HAL nie zawiera żadnych zmian, które mogłyby wpłynąć na bezpieczeństwo.