AIDL HAL'de yapılandırılabilir ses politikası desteği

Android 16'dan itibaren AIDL Audio HAL arayüzü, Yapılandırılabilir Ses Politikası'nı (CAP) tam olarak destekler.

Bu sayfa, iş ortaklarının ve SoC tedarikçilerinin ses politikası yapılandırmalarını taşımasına yardımcı olmak için gerekli teknik bilgileri sağlar.

Parametre Çerçevesi

CAP'nin uygulanması Intel Parameter Framework'e dayanır. CAP, Android 6'da kullanıma sunuldu. Parametre Çerçevesi (PfW), bir sistemi parametreler açısından tanımlamanıza olanak tanır. PfW, yapılandırma XML dosyası kullanarak parametreleri eklentilerle işlemlere bağlar ve parametreleri mevcut ölçütlere göre değiştirmek için kurallar sağlar.

HIDL'de CAP'nin yapısı

HIDL'de CAP ile ilgili tüm yapılandırma XML'de belirtiliyordu. Daha fazla bilgi için Parameter Framework ve Configuration using Parameter Framework başlıklı makaleleri inceleyin. XML dosyaları, aşağıdakileri belirtmek için kullanıldı:

  • Parametrelerin yapısının açıklaması (ör. PfW için ses alanının açıklaması)
  • Ölçüt tanımları
  • Yönlendirme stratejileriyle ilgili kurallar (giriş ve çıkış cihazı seçimi)
  • Hacim tabloları özellikleri

HIDL ile Android çerçevesi, bu XML dosyalarını doğrudan satıcı bölümünden yükleyebiliyordu. HAL API'nin bir parçası olarak bu XML dosyaları için bir XSD şeması tanımlandığından buna izin verildi. HIDL HAL'ın her ana sürümünün karşılık gelen bir XSD şeması vardı. Büyük sürümler geriye dönük uyumluluk gerektirmiyordu.

AIDL'de CAP'nin yapısı

AIDL'ye geçişle birlikte, HAL API sürümleri geriye dönük uyumlu olmaya devam etmelidir (HIDL terimleriyle, AIDL HAL'nin her sürümü "küçük" bir güncellemedir). Şemaların geriye dönük uyumlu güncellemelerini tanımlamanın yerleşik bir yolu olmadığından XSD şemaları artık HAL API'lerinin bir parçası olarak kullanılamaz. Bu nedenle, daha önce XML dosyalarında tanımlanan yapılandırmanın artık AIDL API'leri kullanılarak HAL tarafından sağlanması gerekiyor. Bunu kolaylaştırmak için CAP yapılandırmasının yapısı, Android 15'te AIDL Audio HAL için Ses Politikası Yapılandırması XML'lerine benzer şekilde AIDL'ye dönüştürülür.

CAP'e ait veri yapıları Genel sabit veri türlerine eklenir ve aşağıdaki paketlenebilirleri içerir:

CAP yapılandırmasının giriş noktası AudioHalEngineConfig.CapSpecificConfig yapısındadır. CAP veri yapılarının şeması için AudioHalCapConfiguration.aidl bölümündeki yorumlara bakın.

AIDL HAL'nin varsayılan uygulaması, iş ortaklarının geçişini kolaylaştırmak için eski CAP XML dosyalarının içeriğine göre AIDL paketlenebilirlerini dolduran bir yardımcı sınıf içerir.

Taşıma senaryoları

İş ortakları, daha önce CAP kullanmayan bir ürünün ilk lansmanı veya mevcut bir ürünün taşınması durumuna göre bu bölümde listelenen seçenekleri değerlendirebilir.

Yeni ürün

Ses politikası uygulaması için CAP kullanmaya başlayan yeni bir üründe, OEM, CAP yapılandırmasını satıcı tarafında depolamak için XML kullanmayı seçebilir.

XML kullanmanın avantajı, yapılandırmanın üst düzey bir açıklamadan oluşturulmasını kolaylaştıran bir dizi komut dosyası oluşturma aracının olmasıdır.

OEM, CAP yapılandırmasını satıcı bölümünde depolamak için XML kullanmaya karar verirse yapılandırmayı AIDL'ye dönüştürmek için XML ayrıştırıcının varsayılan uygulamasını kullanması önerilir.

Mevcut ürün için güncelleme

Ürün zaten CAP kullanıyorsa ve bu nedenle XML yapılandırmasına sahipse HAL'in AIDL sürümüyle mevcut CAP'yi kullanmaya devam edebilirsiniz.

Ürün stratejileri için adlandırma kuralı, CAP yapılandırmasının HIDL ve AIDL sürümlerinde farklıdır. HIDL'de yerleşik ("eski") stratejiler media gibi küçük harfli kısa adlar kullanırken AIDL'de yerleşik stratejiler STRATEGY_ önekli tamamen büyük harfli adlar kullanır (ör. STRATEGY_MEDIA). CapProductStrategies.xml'daki yerleşik stratejilerin listesine bakın. Aynı dosya, 1000 ile 1039 arasındaki sayılarla vx_10xx adlandırma kalıbını izleyen OEM'e özel stratejiler için "önceden ayrılmış" kimlikleri tanımlar.

Eski ürün

CAP'ye dayalı ürün, satıcı bölümünü güncellemezse ve HIDL'de kalırsa sistem bölümünü Android 16'ya güncelleyebilirsiniz. Bu çerçeve, eski CAP yapılandırmasıyla uyumlu olmaya devam eder.

Örnek uygulama

AOSP, iş ortaklarının platformlarında CAP'yi uygulamasına yardımcı olmak için AIDL HAL ile CAP kullanan Cuttlefish sanal cihazının "otomotiv" sürümüne dair bir örnek sunar. Cihaza özel yapılandırma, device/google/cuttlefish/shared/auto/audio/policy/engine konumunda bulunur ve lunch hedef adı aosp_cf_x86_64_auto'dür. Android.bp dosyası, CAP tedarikçi dosyalarının tamamını oluşturmak için referans olarak kullanılabilir.