Dimulai dengan Android 14, antarmuka Audio HAL ditentukan menggunakan Stable AIDL . Mitra dan vendor SoC didorong untuk mengimplementasikan kembali Audio HAL mereka untuk menyediakan antarmuka AIDL.
Memperluas perpustakaan libaudiohal
menambahkan dukungan kerangka kerja untuk AIDL HAL. Dengan penerapan AIDL, spesifikasi konfigurasi kebijakan audio dipindahkan ke AIDL HAL. Dengan perubahan ini, Audio Policy Manager (APM) mendapatkan konfigurasi dari HAL alih-alih menggunakannya dari file XML yang disediakan vendor.
API AIDL HAL Audio
Bagian ini menjelaskan API Inti, Efek, dan HAL Umum untuk AIDL.
Gunakan implementasi default API AIDL di /hardware/interfaces/audio/aidl/default/
sebagai referensi saat mengimplementasikan Audio HAL versi baru yang berinteraksi dengan driver kernel.
Lihat file Audio HAL README untuk struktur direktori Audio HAL untuk AIDL.
Inti HAL
Beberapa antarmuka utama Core HAL yang menggunakan AIDL adalah sebagai berikut:
-
IModule.aidl
adalah titik masuk ke API. - Aliran bersifat searah dan digunakan oleh AudioFlinger untuk mengirim atau menerima audio ke dan dari HAL melalui
IStreamOut.aidl
danIStreamIn.aidl
. -
ITelephony.aidl
menyediakan kontrol khusus untuk fungsi telepon. -
IBluetooth.aidl
menyediakan kontrol BT SCO dan HFP yang ada diIPrimaryModule
di HIDL API. -
IConfig.aidl
menyediakan parameter konfigurasi seluruh sistem. -
ISoundDose.aidl
menyediakan dukungan dosis suara. Lihat Dosis suara untuk informasi lebih lanjut. - Versi terbaru Core HAL API yang sedang dikembangkan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Versi terbaru Core HAL API yang dirilis ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Efek HAL
Beberapa antarmuka utama Effects HAL, menggunakan AIDL, adalah sebagai berikut:
-
IFactory.aidl
adalah titik masuk ke API. -
Descriptor.aidl
berisi semua informasi seperti kemampuan dan atribut untuk implementasi efek. -
Capability.aidl
mendefinisikan kemampuan efek yang tidak berubah saat runtime. -
Parameter.aidl
mendefinisikan semua parameter yang didukung oleh instance efek. -
IEffect.aidl
digunakan untuk mengkonfigurasi dan mengontrol contoh efek tertentu. Paket khusus efek diberi nama berdasarkan efeknya.
Versi terbaru dari Effects HAL API yang sedang dikembangkan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Versi terbaru dari Effects HAL API ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Lihat Efek Audio untuk informasi lebih lanjut.
HAL umum
Struktur data dan antarmuka yang digunakan bersama antara berbagai HAL seperti BT HAL, inti dan efek Audio HAL ada di HAL Umum.
Versi terbaru Common AIDL HAL yang sedang dikembangkan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Versi terbaru Common HAL API yang dirilis ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
Tipe data stabil yang umum
Definisi struktur data yang stabil digunakan oleh HAL dan kerangka kerja.
Versi terbaru dari tipe data stabil yang sedang dikembangkan ada di
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Versi terbaru tipe data stabil yang dirilis ada di
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Menguji API Audio AIDL HAL
Tes VTS baru disediakan untuk antarmuka AIDL.
Tidak ada perubahan pada versi HAL baru yang dapat mempengaruhi keamanan.