بدءًا من Android 14، يتم تحديد واجهة Audio HAL باستخدام Stable AIDL. ننصح الشركاء ومورّدي المنظومة على الرقاقة (SoC) بإعادة تنفيذ طبقة HAL للصوت لتوفير واجهة AIDL.
يؤدي توسيع نطاق مكتبة libaudiohal
إلى إضافة دعم إطار العمل لـ AIDL HAL.
من خلال تنفيذ AIDL، يتم نقل مواصفات ضبط سياسة الصوت
إلى AIDL HAL. من خلال هذا التغيير، يحصل "مدير سياسة الصوت" (APM) على الإعدادات من HAL بدلاً من استخدامها من ملف XML الذي يقدّمه المورّد.
واجهة برمجة التطبيقات Audio AIDL HAL
يصف هذا القسم واجهات برمجة التطبيقات Core وEffects وCommon HAL لـ AIDL.
استخدِم التنفيذ التلقائي لواجهة برمجة التطبيقات AIDL API في ملف /hardware/interfaces/audio/aidl/default/
كمرجع عند تنفيذ إصدارات جديدة من واجهات برمجة التطبيقات Audio HAL التي تتفاعل مع برامج تشغيل النواة.
اطّلِع على ملف README الخاص بواجهة برمجة التطبيقات Audio HAL لمعرفة بنية دليل Audio HAL لـ AIDL.
Core HAL
في ما يلي بعض الواجهات الرئيسية لواجهة برمجة التطبيقات لمستوى HAL الأساسي باستخدام AIDL:
IModule.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات.- تكون عمليات البث أحادية الاتجاه ويستخدمها 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/
.
HAL للتأثيرات
في ما يلي بعض الواجهات الرئيسية لواجهة HAL الخاصة بالتأثيرات، باستخدام AIDL:
IFactory.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات.- تتضمن السمة
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 الشائع
توجد هياكل البيانات والواجهات المشتركة بين العديد من HALs، مثل BT HAL، وHALs الأساسية والتأثيرات الصوتية، في 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 API
تم توفير اختبارات VTS جديدة لواجهة AIDL.
ما مِن تغييرات في الإصدار الجديد من HAL يمكن أن تؤثّر في الأمان.