Android 14 ve sonraki sürümlerde Audio HAL arayüzü, Stable AIDL kullanılarak tanımlanır. İş ortaklarının ve SoC satıcılarının, AIDL arayüzü sağlamak için Audio HAL'lerini yeniden uygulamaları önerilir.
libaudiohal kitaplığının genişletilmesi, AIDL HAL için çerçeve desteği ekler.
AIDL uygulamasıyla birlikte ses politikası yapılandırma spesifikasyonu AIDL HAL'ye taşınır. Bu değişiklikle birlikte, Ses Politikası Yöneticisi (APM), yapılandırmayı satıcı tarafından sağlanan XML dosyasından tüketmek yerine HAL'den alır.
Audio AIDL HAL API
Bu bölümde, AIDL için Core, Effects ve Common HAL API'leri açıklanmaktadır.
Çekirdek sürücüleriyle etkileşim kuran yeni Audio HAL sürümlerini uygularken referans olarak /hardware/interfaces/audio/aidl/default/ konumundaki AIDL API'nin varsayılan uygulamasını kullanın.
AIDL için Ses HAL dizin yapısı hakkında bilgi edinmek üzere Audio HAL README dosyasına bakın.
Core HAL
AIDL kullanan Core HAL'in temel arayüzlerinden bazıları şunlardır:
IModule.aidl, API'ye giriş noktasıdır.- Akışlar tek yönlüdür ve
IStreamOut.aidlileIStreamIn.aidlüzerinden HAL'ye ses göndermek veya HAL'den ses almak için AudioFlinger tarafından kullanılır. ITelephony.aidl, telefon işlevlerine özgü kontroller sağlar.IBluetooth.aidl, HIDL API'sindeIPrimaryModuleolan BT SCO ve HFP denetimlerini sağlar.IConfig.aidl, sistem genelinde yapılandırma parametreleri sağlar.ISoundDose.aidl, ses dozu desteği sağlar. Daha fazla bilgi için Ses düzeyi başlıklı makaleyi inceleyin.- Core HAL API'nin geliştirme aşamasındaki en son sürümü
/hardware/interfaces/audio/aidl/android/hardware/audio/core/'de yer almaktadır. - Core HAL API'nin en son yayınlanan sürümü
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/konumundadır.
Efektler Donanım Soyutlama Katmanı
AIDL kullanan Effects HAL'in temel arayüzlerinden bazıları şunlardır:
IFactory.aidl, API'ye giriş noktasıdır.Descriptor.aidl, efekt uygulamasıyla ilgili özellikler ve nitelikler gibi tüm bilgileri içerir.Capability.aidl, çalışma zamanında değişmeyen efekt özelliklerini tanımlar.Parameter.aidl, efekt örneği tarafından desteklenen tüm parametreleri tanımlar.IEffect.aidl, belirli efekt örneklerini yapılandırmak ve kontrol etmek için kullanılır.Efektin adını taşıyan, efektlere özgü paketlenebilirler.
Geliştirme aşamasındaki Effects HAL API'nin en son sürümü
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/'de bulunuyor.Effects HAL API'nin en son yayınlanan sürümü
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effectkonumundadır.
Daha fazla bilgi için Ses Efektleri bölümüne bakın.
Ortak HAL
BT HAL, çekirdek ve efektler Audio HAL'leri gibi çeşitli HAL'ler arasında paylaşılan veri yapıları ve arayüzler Common HAL'dedir.
Geliştirme aşamasındaki en yeni Common AIDL HAL sürümü
/hardware/interfaces/audio/aidl/android/hardware/audio/common/'de bulunuyor.Common HAL API'nin en son yayınlanan sürümü
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/'de bulunur.
Sık kullanılan sabit veri türleri
Kararlı veri yapısı tanımları hem HAL'ler hem de çerçeve tarafından kullanılır.
Geliştirilmekte olan kararlı veri türlerinin en son sürümü
/system/hardware/interfaces/media/aidl/android/media/audio/common/'dadır.Kararlı veri türlerinin en son yayınlanan sürümü
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/içinde yer alır.
Audio AIDL HAL API'yi test etme
AIDL arayüzü için yeni VTS testleri sağlanır.
Yeni HAL sürümünde güvenliği etkileyebilecek bir değişiklik yoktur.