Obsługa konfigurowalnych zasad dotyczących dźwięku w interfejsie AIDL HAL

Od Androida 16 interfejs AIDL Audio HAL w pełni obsługuje konfigurowalne zasady audio (CAP).

Na tej stronie znajdziesz niezbędne informacje techniczne, które pomogą partnerom i dostawcom układów SoC w migracji konfiguracji zasad audio.

Schemat parametrów

Implementacja CAP jest oparta na platformie parametrów Intel. CAP został wprowadzony w Androidzie 6. Platforma parametrów (PfW) umożliwia opisanie systemu za pomocą parametrów. Za pomocą pliku konfiguracyjnego XML PfW wiąże parametry z działaniami za pomocą wtyczek i udostępnia reguły zmiany parametrów zgodnie z bieżącymi kryteriami.

Struktura CAP w HIDL

W HIDL cała konfiguracja CAP była określana w XML. Więcej informacji znajdziesz w sekcjach Framework parametrówKonfiguracja za pomocą Frameworka parametrów. Pliki XML służyły do określania tych elementów:

  • Opis struktury parametrów (czyli opis domeny audio dla PfW)
  • Definicje kryteriów
  • Reguły strategii routingu (wybór urządzenia wejściowego i wyjściowego)
  • Specyfikacja tabel woluminów

Dzięki HIDL platforma Androida mogła wczytywać te pliki XML bezpośrednio z partycji dostawcy. Było to możliwe, ponieważ w ramach interfejsu HAL API zdefiniowano schemat XSD dla tych plików XML. Każda główna wersja HIDL HAL miała odpowiadający jej schemat XSD. Główne wersje nie wymagały zgodności wstecznej.

Struktura CAP w AIDL

W przypadku przejścia na AIDL wersje interfejsu HAL API muszą zachować zgodność wsteczną (w terminologii HIDL każda wersja interfejsu AIDL HAL jest aktualizacją „pomniejszoną”). Schematów XSD nie można już używać w ramach interfejsów HAL API, ponieważ nie ma ustalonego sposobu definiowania aktualizacji schematów zgodnych wstecznie. Dlatego konfiguracja, która była wcześniej zdefiniowana w plikach XML, musi być teraz dostarczana przez HAL za pomocą interfejsów API AIDL. Aby to ułatwić, struktura konfiguracji CAP jest konwertowana na AIDL, podobnie jak pliki XML konfiguracji zasad audio w AIDL Audio HAL na Androida 15.

Struktury danych dla CAP są dodawane do Typowych stabilnych typów danych i obejmują te obiekty możliwe do przekazania:

Punkt wejścia konfiguracji CAP znajduje się w strukturze AudioHalEngineConfig.CapSpecificConfig. Schemat struktur danych CAP znajdziesz w komentarzach w sekcji AudioHalCapConfiguration.aidl.

Domyślna implementacja interfejsu AIDL HAL zawiera klasę pomocniczą, która wypełnia obiekty AIDL Parcelable na podstawie zawartości starszych plików XML CAP, aby uprościć migrację dla partnerów.

Scenariusze migracji

Partnerzy mogą rozważyć opcje wymienione w tej sekcji w zależności od tego, czy jest to pierwsze uruchomienie usługi, która wcześniej nie korzystała z CAP, czy migracja istniejącej usługi.

Nowy produkt

W przypadku nowego produktu, który zaczyna korzystać z CAP do wdrażania zasad dotyczących dźwięku, producent OEM może używać kodu XML do przechowywania konfiguracji CAP po stronie dostawcy.

Zaletą korzystania z XML jest to, że istnieje zestaw narzędzi do tworzenia skryptów, które ułatwiają generowanie konfiguracji na podstawie opisu wysokiego poziomu.

Jeśli producent OEM zdecyduje się używać XML do przechowywania konfiguracji CAP na partycji dostawcy, zalecamy użycie domyślnej implementacji analizatora XML do przekształcania konfiguracji w AIDL.

Aktualizacja istniejącego produktu

Jeśli produkt korzysta już z CAP i ma konfigurację XML, możesz nadal używać istniejącego CAP z wersją AIDL interfejsu HAL.

Konwencja nazewnictwa strategii dotyczących produktów różni się w wersjach HIDL i AIDL konfiguracji CAP. W HIDL wbudowane („starsze”) strategie używają krótkich nazw pisanych małymi literami, np. media, natomiast w AIDL wbudowane strategie używają nazw pisanych wielkimi literami z prefiksem STRATEGY_, np. STRATEGY_MEDIA. Listę wbudowanych strategii znajdziesz w CapProductStrategies.xml. Ten sam plik definiuje „wstępnie przydzielone” identyfikatory dla strategii specyficznych dla producenta OEM, które są zgodne ze wzorcem nazewnictwa vx_10xx z liczbami od 1000 do 1039.

Starsza usługa

Jeśli produkt korzystający z CAP nie zaktualizuje partycji dostawcy i pozostanie w HIDL, możesz zaktualizować partycję systemową do Androida 16. Struktura pozostaje zgodna ze starszą konfiguracją CAP.

Przykładowa implementacja

Aby pomóc partnerom w implementacji CAP na ich platformach, AOSP udostępnia przykład „samochodowej” wersji urządzenia wirtualnego Cuttlefish, która korzysta z CAP z AIDL HAL. Konfiguracja specyficzna dla urządzenia znajduje się w folderze device/google/cuttlefish/shared/auto/audio/policy/engine, a nazwa docelowa lunch to aosp_cf_x86_64_auto. Plik Android.bp może służyć jako punkt odniesienia do wygenerowania pełnego zestawu plików dostawców CAP.