بدءًا من Android 14، تم تعريف واجهة Audio HAL باستخدام Stable AIDL . يتم تشجيع الشركاء وموردي SoC على إعادة تشغيل Audio HAL الخاص بهم لتوفير واجهة AIDL.
يؤدي توسيع مكتبة libaudiohal
إلى إضافة دعم إطاري لـ AIDL HAL. مع تطبيق AIDL، يتم نقل مواصفات تكوين سياسة الصوت إلى AIDL HAL. من خلال هذا التغيير، يحصل مدير سياسة الصوت (APM) على التكوين من HAL بدلاً من استهلاكه من ملف XML المقدم من البائع.
الصوت AIDL HAL API
يصف هذا القسم واجهات برمجة التطبيقات الأساسية والتأثيرات وواجهات برمجة تطبيقات HAL الشائعة لـ AIDL.
استخدم التنفيذ الافتراضي لـ AIDL API على /hardware/interfaces/audio/aidl/default/
كمرجع عند تنفيذ إصدارات جديدة من Audio HALs التي تتفاعل مع برامج تشغيل kernel.
راجع ملف Audio HAL README للتعرف على بنية دليل Audio HAL لـ AIDL.
هال الأساسية
بعض الواجهات الرئيسية لـ Core HAL ، باستخدام AIDL، هي كما يلي:
-
IModule.aidl
هي نقطة الدخول إلى API. - التدفقات أحادية الاتجاه ويتم استخدامها بواسطة AudioFlinger لإرسال أو استقبال الصوت من وإلى HAL عبر
IStreamOut.aidl
وIStreamIn.aidl
. - يوفر
ITelephony.aidl
عناصر تحكم خاصة بوظائف الاتصال الهاتفي. - يوفر
IBluetooth.aidl
عناصر تحكم BT SCO وHFP التي كانت موجودة علىIPrimaryModule
في HIDL API. - يوفر
IConfig.aidl
معلمات التكوين على مستوى النظام. - يوفر
ISoundDose.aidl
دعمًا للجرعة الصوتية. انظر الجرعة الصوتية لمزيد من المعلومات. - أحدث إصدار من Core HAL API قيد التطوير موجود في
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - أحدث إصدار من Core HAL API موجود في
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
تأثيرات هال
بعض الواجهات الرئيسية لـ Effects HAL، باستخدام AIDL، هي كما يلي:
-
IFactory.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات (API). - يحتوي
Descriptor.aidl
على كافة المعلومات مثل الإمكانيات والسمات الخاصة بتنفيذ التأثير. - يحدد
Capability.aidl
إمكانيات التأثير التي لا تتغير في وقت التشغيل. - تحدد
Parameter.aidl
كافة المعلمات التي يدعمها مثيل التأثير. - يتم استخدام
IEffect.aidl
لتكوين مثيلات تأثير معينة والتحكم فيها. الطرود الخاصة بالتأثير والتي تحمل اسم التأثير.
أحدث إصدار من Effects HAL API قيد التطوير موجود في
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.أحدث إصدار من Effects HAL API موجود في
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
راجع التأثيرات الصوتية لمزيد من المعلومات.
هال المشتركة
توجد هياكل البيانات والواجهات المشتركة بين شبكات HAL المختلفة مثل BT HAL والتأثيرات الأساسية ومناطق HAL الصوتية في طبقة HAL المشتركة.
أحدث إصدار من Common AIDL HAL قيد التطوير موجود في
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.أحدث إصدار من Common HAL API موجود في
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
أنواع البيانات المستقرة الشائعة
يتم استخدام تعريفات بنية البيانات الثابتة بواسطة كل من HALs وإطار العمل.
أحدث إصدار من أنواع البيانات الثابتة قيد التطوير موجود في
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.أحدث إصدار من أنواع البيانات الثابتة موجود في
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
اختبار واجهة برمجة التطبيقات Audio AIDL HAL
يتم توفير اختبارات VTS جديدة لواجهة AIDL.
لا توجد أية تغييرات في إصدار HAL الجديد يمكن أن تؤثر على الأمان.