Mulai Android 14, antarmuka HAL Audio ditentukan menggunakan AIDL Stabil. Partner dan vendor SoC dianjurkan untuk mengimplementasikan ulang Audio HAL mereka guna menyediakan antarmuka AIDL.
Memperluas library libaudiohal
menambahkan dukungan framework untuk AIDL HAL.
Dengan implementasi AIDL, spesifikasi konfigurasi kebijakan audio dipindahkan ke AIDL HAL. Dengan perubahan ini, Audio Policy Manager (APM) mendapatkan
konfigurasi dari HAL, bukan menggunakannya dari file XML yang disediakan vendor.
Audio AIDL HAL API
Bagian ini menjelaskan API HAL Core, Effects, dan Common untuk AIDL.
Gunakan implementasi default AIDL API di
/hardware/interfaces/audio/aidl/default/
sebagai referensi saat menerapkan versi baru HAL Audio yang
berinteraksi dengan driver kernel.
Lihat file README HAL Audio untuk struktur direktori HAL Audio untuk AIDL.
HAL Inti
Beberapa antarmuka utama Core HAL, menggunakan AIDL, adalah sebagai berikut:
IModule.aidl
adalah titik entri ke API.- Aliran data bersifat satu arah 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
dalam HIDL API.IConfig.aidl
menyediakan parameter konfigurasi di seluruh sistem.ISoundDose.aidl
menyediakan dukungan dosis suara. Lihat Dosis suara untuk mengetahui informasi selengkapnya.- Versi terbaru Core HAL API dalam pengembangan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Versi rilis terbaru Core HAL API ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
HAL Efek
Beberapa antarmuka utama HAL Efek, menggunakan AIDL, adalah sebagai berikut:
IFactory.aidl
adalah titik entri ke API.Descriptor.aidl
berisi semua informasi seperti kemampuan dan atribut untuk penerapan efek.Capability.aidl
menentukan kemampuan efek yang tidak berubah saat runtime.Parameter.aidl
menentukan semua parameter yang didukung oleh instance efek.IEffect.aidl
digunakan untuk mengonfigurasi dan mengontrol instance efek tertentu.Parcelable khusus efek yang dinamai sesuai efeknya.
Versi terbaru Effects HAL API dalam pengembangan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Versi rilis terbaru Effects HAL API ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Lihat Efek Audio untuk mengetahui informasi selengkapnya.
HAL Umum
Struktur data dan antarmuka yang dibagikan antara berbagai HAL seperti BT HAL, HAL Audio inti dan efek berada di HAL Umum.
Versi terbaru Common AIDL HAL yang sedang dikembangkan ada di
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Versi yang dirilis terbaru dari Common HAL API ada di
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
Jenis data stabil umum
Definisi struktur data yang stabil digunakan oleh HAL dan framework.
Versi terbaru tipe data stabil dalam pengembangan ada di
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Versi terbaru jenis data stabil yang dirilis ada di
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Menguji Audio AIDL HAL API
Pengujian VTS baru disediakan untuk antarmuka AIDL.
Tidak ada perubahan dalam versi HAL baru yang dapat memengaruhi keamanan.