Mulai Android 16, antarmuka AIDL Audio HAL sepenuhnya mendukung Kebijakan Audio yang Dapat Dikonfigurasi (CAP).
Halaman ini memberikan latar belakang teknis yang diperlukan untuk membantu partner dan vendor SoC dalam memigrasikan konfigurasi kebijakan audio mereka.
Framework Parameter
Implementasi CAP didasarkan pada Framework Parameter Intel. CAP diperkenalkan di Android 6. Framework Parameter (PfW) memungkinkan untuk mendeskripsikan sistem dalam hal parameter. Dengan menggunakan file XML konfigurasi, PfW mengikat parameter ke tindakan menggunakan plugin, dan memberikan aturan untuk mengubah parameter sesuai dengan kriteria saat ini.
Struktur CAP di HIDL
Di HIDL, semua konfigurasi untuk CAP ditentukan dalam XML. Lihat Framework Parameter, dan Konfigurasi menggunakan Framework Parameter untuk mengetahui informasi selengkapnya. File XML digunakan untuk menentukan hal berikut:
- Deskripsi struktur parameter (yaitu, deskripsi domain audio untuk PfW)
- Definisi untuk kriteria
- Aturan untuk strategi pemilihan rute (pemilihan perangkat input dan output)
- Spesifikasi tabel volume
Dengan HIDL, framework Android dapat memuat file XML ini langsung dari partisi vendor. Hal ini diizinkan karena skema XSD ditentukan, sebagai bagian dari HAL API, untuk file XML ini. Setiap rilis utama HIDL HAL memiliki skema XSD yang sesuai. Rilis utama tidak memerlukan kompatibilitas mundur.
Struktur CAP di AIDL
Dengan transisi ke AIDL, rilis HAL API harus tetap kompatibel dengan versi sebelumnya (dalam istilah HIDL, setiap rilis AIDL HAL adalah update "minor"). Skema XSD tidak dapat digunakan lagi sebagai bagian dari HAL API karena tidak ada cara yang ditetapkan untuk menentukan update yang kompatibel dengan versi lama ke skema. Oleh karena itu, konfigurasi yang sebelumnya ditentukan dalam file XML kini harus disediakan oleh HAL menggunakan AIDL API. Untuk memfasilitasi hal ini, struktur konfigurasi CAP dikonversi menjadi AIDL, mirip dengan XML Konfigurasi Kebijakan Audio di AIDL Audio HAL untuk Android 15.
Struktur data untuk CAP ditambahkan ke Jenis data stabil umum dan menyertakan parcelable berikut:
AudioHalCapConfiguration.aidl
AudioHalCapCriterionV2.aidl
AudioHalCapDomain.aidl
AudioHalCapParameter.aidl
AudioHalCapRule.aidl
Titik entri untuk konfigurasi CAP berada dalam
struktur
AudioHalEngineConfig.CapSpecificConfig
. Lihat komentar di
AudioHalCapConfiguration.aidl
untuk diagram struktur data CAP.
Implementasi default HAL AIDL berisi class helper yang mengisi parcelable AIDL berdasarkan konten file XML CAP lama untuk menyederhanakan migrasi bagi partner.
Skenario migrasi
Partner dapat mempertimbangkan opsi seperti yang tercantum di bagian ini, berdasarkan apakah ini peluncuran pertama produk yang sebelumnya tidak menggunakan CAP, atau migrasi produk yang sudah ada.
Produk baru
Untuk produk baru yang mulai menggunakan CAP untuk implementasi kebijakan audio, OEM dapat memilih untuk menggunakan XML untuk menyimpan konfigurasi CAP di sisi vendor.
Manfaat menggunakan XML adalah adanya serangkaian alat pembuatan skrip yang memfasilitasi pembuatan konfigurasi dari deskripsi tingkat tinggi.
Jika OEM memutuskan untuk menggunakan XML untuk menyimpan konfigurasi CAP di partisi vendor, sebaiknya gunakan implementasi default parser XML untuk mengonversi konfigurasi menjadi AIDL.
Pembaruan untuk produk yang ada
Jika produk sudah menggunakan CAP dan memiliki konfigurasi XML, Anda dapat terus menggunakan CAP yang ada dengan HAL versi AIDL.
Konvensi penamaan untuk strategi produk berbeda dalam versi HIDL dan AIDL
konfigurasi CAP. Di HIDL, strategi bawaan ("lama")
menggunakan nama pendek huruf kecil seperti media
, sedangkan di AIDL, strategi bawaan
menggunakan nama huruf besar yang diawali dengan STRATEGY_
, misalnya STRATEGY_MEDIA
. Lihat
daftar strategi bawaan di
CapProductStrategies.xml
.
File yang sama menentukan ID "pra-dialokasikan" untuk strategi khusus OEM yang
mengikuti pola penamaan vx_10xx
dengan angka dari 1000
hingga 1039
.
Produk lama
Jika produk yang mengandalkan CAP tidak mengupdate partisi vendornya dan tetap menggunakan HIDL, Anda dapat mengupdate partisi sistem ke Android 16. Framework ini tetap kompatibel dengan konfigurasi CAP lama.
Contoh penerapan
Untuk membantu partner menerapkan CAP untuk platform mereka, AOSP memiliki contoh
ragam "otomotif" dari perangkat virtual Cuttlefish yang menggunakan CAP dengan HAL
AIDL. Konfigurasi khusus perangkat terletak di
device/google/cuttlefish/shared/auto/audio/policy/engine,
dengan nama target lunch
dari aosp_cf_x86_64_auto
. File Android.bp
dapat
digunakan sebagai referensi untuk membuat kumpulan lengkap file vendor CAP.