إتاحة سياسة الصوت القابلة للضبط في AIDL HAL

بدءًا من الإصدار 16 من Android، تتيح واجهة AIDL Audio HAL إمكانية ضبط سياسة ملف تعريف الوسائط المتوافقة مع تقنية دالّة برمجة التطبيقات (CAP) بالكامل.

تقدّم هذه الصفحة الخلفية الفنية اللازمة لمساعدة الشركاء وموفّري وحدات المعالجة المركزية (SoC) في نقل إعدادات سياسة الصوت.

إطار عمل المَعلمات

يستند تنفيذ CAP إلى إطار عمل Intel Parameter Framework. تم طرح سياسة CAP في الإصدار 6 من Android. يتيح إطار عمل المَعلمات (PfW) وصف نظام من حيث المَعلمات. باستخدام ملف XML للإعدادات، يربط إطار عمل PfW المَعلمات بالإجراءات باستخدام المكوّنات الإضافية، ويقدّم قواعد لتغيير المَعلمات وفقًا للمعايير الحالية.

بنية CAP في HIDL

في HIDL، تم تحديد جميع إعدادات CAP بتنسيق XML. اطّلِع على إطار العمل المتعلّق بالمَعلمات والضبط باستخدام إطار العمل المتعلّق بالمَعلمات للحصول على مزيد من المعلومات. تم استخدام ملفات XML لتحديد ما يلي:

  • وصف بنية المَعلمات (أي وصف نطاق الصوت لميزة "التعرّف على المحتوى الصوتي")
  • تعريفات المعايير
  • قواعد لاستراتيجيات التوجيه (اختيار أجهزة الإدخال والإخراج)
  • مواصفات جداول الوحدات

باستخدام HIDL، تمكّن إطار عمل Android من تحميل ملفات XML هذه مباشرةً من قسم المورّد. تم السماح بذلك لأنّه تمّ تحديد مخطّط XSD، كجزء من واجهة برمجة التطبيقات HAL API، لملفات XML هذه. كان لكل إصدار رئيسي من HIDL HAL مخطّط XSD متوافق. لم تكن الإصدارات الرئيسية تتطلّب التوافق مع الإصدارات القديمة.

بنية CAP في AIDL

مع الانتقال إلى AIDL، يجب أن تظل إصدارات HAL API متوافقة مع الإصدارات السابقة (وفقًا لمصطلحات HIDL، كل إصدار من AIDL HAL هو تحديث "ثانوي"). لا يمكن استخدام مخطّطات XSD بعد الآن كجزء من واجهات برمجة تطبيقات HAL، لأنّه لا تتوفّر طريقة راسخة لتحديد تعديلات متوافقة مع الإصدارات القديمة للمخطّطات. وبالتالي، يجب أن يوفّر HAL الآن الإعدادات التي تم تحديدها سابقًا في ملفات XML باستخدام واجهات برمجة التطبيقات AIDL. لتسهيل ذلك، يتم تحويل بنية إعدادات CAP إلى AIDL، تمامًا مثل ملفات XML لإعدادات سياسة الصوت في AIDL Audio HAL لنظام التشغيل Android 15.

تتم إضافة هياكل البيانات لـ CAP إلى أنواع البيانات الثابتة الشائعة وتشمل العناصر التالية التي يمكن تقسيمها إلى أجزاء:

يمكنك العثور على نقطة الدخول لإعدادات CAP في بنية AudioHalEngineConfig.CapSpecificConfig. اطّلِع على التعليقات في AudioHalCapConfiguration.aidl للاطّلاع على مخطّط بياني لبنى بيانات CAP.

يحتوي التنفيذ التلقائي لواجهة برمجة التطبيقات AIDL HAL على كلاس مساعدة يملأ عناصر AIDL القابلة للتقسيم استنادًا إلى محتوى ملفات XML القديمة لبروتوكول CAP لتبسيط عملية نقل البيانات للشركاء.

سيناريوهات نقل البيانات

يمكن للشركاء النظر في الخيارات الواردة في هذا القسم، استنادًا إلى ما إذا كان إطلاق المنتج لأول مرة لم يكن يستخدم ميزة "الإعلانات على شبكة البحث" من قبل، أو نقل بيانات منتج حالي.

منتج جديد

بالنسبة إلى المنتج الجديد الذي يبدأ باستخدام CAP لتنفيذ سياسة الصوت، يمكن لصنّاع المعدّات الأصلية اختيار استخدام ملف XML لتخزين إعدادات CAP من جهة المورّد.

تتمثل فائدة استخدام XML في توفّر مجموعة من أدوات النصوص البرمجية التي تسهّل إنشاء الإعدادات من وصف على مستوى عالٍ.

إذا قرّر المصنّع الأصلي للجهاز استخدام تنسيق XML لتخزين إعدادات CAP في قسم المورّد، يُنصح باستخدام التنفيذ التلقائي لمعترِّف XML لتحويل الإعدادات إلى لغة AIDL.

تعديل لمنتج حالي

إذا كان المنتج يستخدم حاليًا CAP وبالتالي يتضمّن ملف إعدادات XML، يمكنك مواصلة استخدام CAP الحالي مع إصدار AIDL من HAL.

تختلف اصطلاحات التسمية لاستراتيجيات المنتجات في إصدارَي HIDL وAIDL من إعدادات CAP. في HIDL، كانت الاستراتيجيات المضمّنة ("القديمة") تستخدم أسماء قصيرة مكتوبة بأحرف صغيرة مثل media، في حين أنّ الاستراتيجيات المضمّنة في AIDL كانت تستخدم أسماء مكتوبة بأحرف كبيرة مسبوقة بـ STRATEGY_، مثل STRATEGY_MEDIA. اطّلِع على قائمة الاستراتيجيات المضمّنة في CapProductStrategies.xml. يحدِّد الملف نفسه أرقام تعريف "مخصّصة مسبقًا" لاستراتيجيات المصنّعين الأصليّين للأجهزة التي يلي نمط تسميتها vx_10xx مع الأرقام من 1000 إلى 1039.

منتج قديم

إذا لم يعدّل المنتج الذي يعتمد على CAP قسم المورّد ويظلّ متوافقًا مع HIDL، يمكنك تحديث قسم النظام إلى Android 16. يظلّ إطار العمل متوافقًا مع إعدادات CAP القديمة.

مثال على التنفيذ

لمساعدة الشركاء على تنفيذ CAP على منصاتهم، يتضمّن AOSP مثالاً على ملف APK لإصدار "السيارات" من الجهاز الافتراضي Cuttlefish الذي يستخدم CAP مع AIDL HAL. يمكن العثور على الإعدادات الخاصة بالجهاز في device/google/cuttlefish/shared/auto/audio/policy/engine، مع الاسم المستهدَف lunch الذي يُمثّل aosp_cf_x86_64_auto. يمكن استخدام ملف Android.bp كمرجع لإنشاء المجموعة الكاملة من ملفات مورّدي CAP.