Android 14'ten itibaren 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ı genişletmek, 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ülerle etkileşim kuran yeni Audio HAL sürümlerini uygularken referans olarak /hardware/interfaces/audio/aidl/default/
adresindeki 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.
Temel 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.aidl
ileIStreamIn.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'sindeIPrimaryModule
bulunan 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 dozu başlıklı makaleyi inceleyin.- Geliştirme aşamasındaki Core HAL API'nin 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/
içinde yer alır.
Efektler Donanım Soyutlama Katmanı
AIDL kullanan Effects HAL'nin 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 bulunabilir.Effects HAL API'nin en son yayınlanan sürümü
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
konumundadı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/
konumundadır.
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/
'dedir.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.