بدءًا من الإصدار 14 من Android، يتم تحديد واجهة Audio HAL باستخدام Stable AIDL. ننصح الشركاء ومورّدي شرائح المعالجة المركزية بإعادة تنفيذ Audio 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
في ما يلي بعض الواجهات الرئيسية لواجهة برمجة التطبيقات Core 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 الشائع
إنّ بنية البيانات الواجهات المشتركة بين واجهات HAL المختلفة، مثل BT HAL و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/
.
أنواع البيانات الثابتة الشائعة
وتستخدم واجهة برمجة التطبيقات لخدمات البحث (HAL) والإطار العام تعريفات هياكل البيانات الثابتة.
يتوفّر أحدث إصدار من أنواع البيانات الثابتة قيد التطوير في
/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 يمكن أن تؤثّر في الأمان.