Począwszy od Androida 14 interfejs HAL audio jest zdefiniowane za pomocą stabilnej AIDL. Partnerzy i dostawców układów SOC zachęcamy do ponownego wdrożenia interfejsu audio HAL, Interfejs AIDL.
Rozszerzenie biblioteki libaudiohal
powoduje dodanie obsługi platformy dla AIDL HAL.
W przypadku implementacji AIDL specyfikacja konfiguracji zasad audio jest
przeniesiono do AIDL HAL. Dzięki tej zmianie Menedżer zasad dotyczących dźwięku (APM) pobierze
z listy HAL, zamiast korzystać z niej z kodu XML dostarczonego przez dostawcę
.
Interfejs API Audio AIDL HAL
W tej sekcji opisano Core, Effects i Common HAL API dla AIDL.
Użyj domyślnej implementacji interfejsu AIDL API w
/hardware/interfaces/audio/aidl/default/
jako wskazówkę przy wdrażaniu nowych wersji HAL audio, które
ze sterownikami jądra systemu operacyjnego.
Zobacz Plik audio HAL README dla struktury katalogów audio HAL dla AIDL.
Podstawowa HAL
Niektóre kluczowe interfejsy Core HAL: przy użyciu AIDL są następujące:
IModule.aidl
to punkt wejścia do interfejsu API.- Strumienie są jednokierunkowe i wykorzystywane przez AudioFlinger do wysyłania i odbierania
dźwięk do i z HAL przez
IStreamOut.aidl
iIStreamIn.aidl
. ITelephony.aidl
zawiera elementy sterujące funkcjami telefonicznymi.IBluetooth.aidl
udostępnia ustawienia BT SCO i HFP, które były dostępneIPrimaryModule
w interfejsie API HIDL.IConfig.aidl
udostępnia parametry konfiguracji dla całego systemu.ISoundDose.aidl
zapewnia wsparcie w dawce dźwięku. Więcej informacji znajdziesz w sekcji Dawka dźwięku.- Najnowsza wersja interfejsu Core HAL API w trakcie opracowywania jest dostępna w
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Najnowsza opublikowana wersja interfejsu Core HAL API jest dostępna w
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
HAL efektów
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 na potrzeby 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 kontrolowania instancji konkretnych efektów.Elementy pakietu zależne od efektu mają nazwy zgodne z danym efektem.
Najnowsza wersja interfejsu Effects HAL API w trakcie opracowywania jest dostępna w
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Dostępna jest najnowsza opublikowana wersja interfejsu Effects HAL API
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Sprawdź efekty audio, aby dowiedzieć się więcej. i informacjami o nich.
Wspólna wartość HAL
Struktury i interfejsy danych współdzielone przez różne platformy HAL, takie jak BT HAL, podstawowe funkcje Listy HAL audio i efekty znajdują się na karcie Common HAL.
Najnowsza wersja interfejsu Common AIDL HAL w trakcie opracowywania jest
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Najnowsza opublikowana wersja interfejsu Common HAL API jest już dostępna
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
Typowe stabilne typy danych
Definicje stabilnej struktury danych są używane zarówno przez HAL, jak i platformę.
Najnowsza wersja stabilnych typów danych, w trakcie opracowywania
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Najnowsza opublikowana wersja stabilnych typów danych jest w
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Testowanie interfejsu Audio AIDL HAL API
Nowy VTS dla interfejsu AIDL.
W nowej wersji HAL nic się nie zmienia, które mogłyby wpłynąć na bezpieczeństwo.