اعتبارًا من Android 16، تتوافق واجهة AIDL Audio HAL بالكامل مع Configurable Audio Policy (CAP).
تقدّم هذه الصفحة معلومات أساسية فنية ضرورية لمساعدة الشركاء ومورّدي أنظمة SoC في نقل إعدادات سياسات الصوت.
إطار عمل المَعلمات
يستند تنفيذ "سياسة الصوت القابلة للإعداد" إلى إطار عمل المَعلمات من Intel. تم طرح "سياسة الصوت القابلة للإعداد" في Android 6. يسمح إطار عمل المَعلمات (PfW) بوصف النظام من خلال مَعلمات. باستخدام ملف إعداد بتنسيق XML، يربط إطار عمل المَعلمات المَعلمات بالإجراءات باستخدام مكوّنات إضافية، ويقدّم قواعد لتغيير المَعلمات وفقًا للمعايير الحالية.
بنية "سياسة الصوت القابلة للإعداد" في HIDL
في HIDL، تم تحديد جميع إعدادات "سياسة الصوت القابلة للإعداد" بتنسيق XML. لمزيد من المعلومات، يُرجى الاطّلاع على إطار عمل المَعلمات والإعداد باستخدام إطار عمل المَعلمات. تم استخدام ملفات XML لتحديد ما يلي:
- وصف بنية المَعلمات (أي وصف نطاق الصوت لإطار عمل المَعلمات)
- تعريفات المعايير
- قواعد استراتيجيات التوجيه (اختيار جهاز الإدخال والإخراج)
- مواصفات جداول مستوى الصوت
باستخدام HIDL، كان بإمكان إطار عمل Android تحميل ملفات XML هذه مباشرةً من قسم مورّد الجهاز. كان ذلك مسموحًا لأنّه تم تحديد مخطط XSD كجزء من واجهة برمجة تطبيقات HAL لملفات XML هذه. كان لكل إصدار رئيسي من HIDL HAL مخطط XSD مطابق. لم تكن الإصدارات الرئيسية تتطلّب التوافق مع الإصدارات السابقة.
بنية "سياسة الصوت القابلة للإعداد" في AIDL
مع الانتقال إلى AIDL، يجب أن تظل إصدارات واجهة برمجة تطبيقات HAL متوافقة مع الإصدارات السابقة (من منظور HIDL، كل إصدار من AIDL HAL هو تحديث "ثانوي"). لم يعُد من الممكن استخدام مخططات XSD كجزء من واجهات برمجة تطبيقات HAL لأنّه لا توجد طريقة محدّدة لتحديد تحديثات متوافقة مع الإصدارات السابقة للمخططات. وبالتالي، يجب أن توفّر واجهة HAL الإعدادات التي تم تحديدها سابقًا في ملفات XML باستخدام واجهات برمجة تطبيقات AIDL. لتسهيل ذلك، يتم تحويل بنية إعدادات "سياسة الصوت القابلة للإعداد" إلى AIDL، على غرار ملفات XML لإعدادات سياسة الصوت في AIDL Audio HAL لنظام Android 15.
تتم إضافة بُنى البيانات الخاصة بـ "سياسة الصوت القابلة للإعداد" إلى أنواع البيانات الثابتة الشائعة وتتضمّن ما يلي من البيانات القابلة للتوزيع:
AudioHalCapConfiguration.aidlAudioHalCapCriterionV2.aidlAudioHalCapDomain.aidlAudioHalCapParameter.aidlAudioHalCapRule.aidl
نقطة الدخول لإعدادات "سياسة الصوت القابلة للإعداد" هي في البنية
AudioHalEngineConfig.CapSpecificConfig. يُرجى الاطّلاع على التعليقات في
AudioHalCapConfiguration.aidl
للحصول على رسم بياني لبُنى بيانات "سياسة الصوت القابلة للإعداد".
يحتوي التنفيذ التلقائي لـ AIDL HAL على فئة مساعِدة تملأ البيانات القابلة للتوزيع في AIDL استنادًا إلى محتويات ملفات XML القديمة لـ "سياسة الصوت القابلة للإعداد" لتسهيل عملية النقل للشركاء.
سيناريوهات النقل
يمكن للشركاء مراعاة الخيارات المُدرَجة في هذا القسم، استنادًا إلى ما إذا كان هذا هو الإطلاق الأول لمنتج لم يكن يستخدم "سياسة الصوت القابلة للإعداد" من قبل، أو نقل منتج حالي.
منتج جديد
بالنسبة إلى منتج جديد يبدأ في استخدام "سياسة الصوت القابلة للإعداد" لتنفيذ سياسة الصوت، يمكن لمصنّع المعدات الأصلية اختيار استخدام XML لتخزين إعدادات "سياسة الصوت القابلة للإعداد" من جهة المورّد.
تتمثّل فائدة استخدام XML في توفّر مجموعة من أدوات النصوص البرمجية التي تسهّل إنشاء الإعدادات من وصف عالي المستوى.
إذا قرّر مصنّع المعدات الأصلية استخدام XML لتخزين إعدادات "سياسة الصوت القابلة للإعداد" في قسم المورّد، يُنصح باستخدام التنفيذ التلقائي لمحلّل XML لتحويل الإعدادات إلى AIDL.
تحديث لمنتج حالي
إذا كان المنتج يستخدم "سياسة الصوت القابلة للإعداد" ولديه بالتالي إعدادات XML، يمكنك مواصلة استخدام "سياسة الصوت القابلة للإعداد" الحالية مع إصدار AIDL من HAL.
يختلف اصطلاح تسمية استراتيجيات المنتجات في إصدارَي HIDL وAIDL من إعدادات "سياسة الصوت القابلة للإعداد". في HIDL، كانت الاستراتيجيات المضمّنة ("القديمة")
تستخدم أسماء قصيرة بأحرف صغيرة، مثل media، بينما في AIDL، تستخدم الاستراتيجيات المضمّنة
أسماء بأحرف كبيرة تبدأ بالبادئة STRATEGY_، مثل STRATEGY_MEDIA. يُرجى الاطّلاع على قائمة الاستراتيجيات المضمّنة في
CapProductStrategies.xml.
يحدّد الملف نفسه معرّفات "مخصّصة مسبقًا" للاستراتيجيات الخاصة بمصنّع المعدات الأصلية والتي تتّبع نمط التسمية vx_10xx مع أرقام من 1000 إلى 1039.
منتج قديم
إذا كان المنتج الذي يعتمد على "سياسة الصوت القابلة للإعداد" لا يحدّث قسم المورّد ويظل على HIDL، يمكنك تحديث قسم النظام إلى Android 16. يظل إطار العمل متوافقًا مع إعدادات "سياسة الصوت القابلة للإعداد" القديمة.
مثال على التنفيذ
لمساعدة الشركاء في تنفيذ "سياسة الصوت القابلة للإعداد" على منصّاتهم، يتضمّن AOSP مثالاً على إصدار "السيارات" من جهاز Cuttlefish الظاهري الذي يستخدم "سياسة الصوت القابلة للإعداد" مع AIDL HAL. توجد الإعدادات الخاصة بالجهاز في
device/google/cuttlefish/shared/auto/audio/policy/engine،
مع اسم هدف lunch وهو aosp_cf_x86_64_auto. يمكن استخدام ملف Android.bp كمرجع لإنشاء المجموعة الكاملة من ملفات مورّد "سياسة الصوت القابلة للإعداد".