بدءًا من Android 14، يتم تحديد واجهة Audio HAL باستخدام Stable AIDL. ننصح الشركاء ومورّدي نظام على شريحة بإعادة تنفيذ طبقة تجريد الأجهزة الصوتية (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/
كمرجع عند تنفيذ إصدارات جديدة من طبقات تجريد الأجهزة الصوتية (HAL) التي تتفاعل مع برامج تشغيل النواة.
راجِع ملف README الخاص بطبقة تجريد الأجهزة الصوتية (HAL) للاطّلاع على بنية دليل طبقة تجريد الأجهزة الصوتية (HAL) لواجهة تعريف لغة AIDL.
Core HAL
في ما يلي بعض الواجهات الرئيسية في Core HAL التي تستخدم AIDL:
IModule.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات.- تكون عمليات البث أحادية الاتجاه، ويستخدمها AudioFlinger لإرسال الصوت واستلامه من طبقة تجريد الأجهزة (HAL) عبر
IStreamOut.aidl
وIStreamIn.aidl
. - توفّر
ITelephony.aidl
عناصر تحكّم خاصة بوظائف الاتصال الهاتفي. - توفّر
IBluetooth.aidl
عناصر تحكّم في BT SCO وHFP كانت متوفّرة فيIPrimaryModule
في واجهة برمجة التطبيقات HIDL. - توفّر
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) الخاصة بالمؤثرات، باستخدام لغة تعريف واجهة Android (AIDL):
IFactory.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات.- يحتوي
Descriptor.aidl
على جميع المعلومات، مثل الإمكانات والسمات، الخاصة بتنفيذ المؤثر. - يحدّد
Capability.aidl
إمكانات التأثير التي لا تتغيّر في وقت التشغيل. - يحدّد
Parameter.aidl
جميع المَعلمات التي يدعمها مثيل التأثير. - يُستخدَم
IEffect.aidl
لضبط عناصر تأثير معيّنة والتحكّم فيها. حِزم قابلة للتسلسل خاصة بالتأثيرات ومسمّاة باسم التأثير
يتوفّر أحدث إصدار من واجهة برمجة التطبيقات Effects HAL قيد التطوير في
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.يتوفّر أحدث إصدار تم إصداره من واجهة برمجة التطبيقات Effects HAL في
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
يمكنك الاطّلاع على التأثيرات الصوتية لمزيد من المعلومات.
Common HAL
تتوفّر في Common HAL بنى البيانات والواجهات المشترَكة بين مختلف طبقات تجريد الأجهزة (HAL)، مثل طبقات تجريد الأجهزة الخاصة بتقنية Bluetooth وطبقات تجريد الأجهزة الأساسية وطبقات تجريد الأجهزة الخاصة بتأثيرات الصوت.
يتوفّر أحدث إصدار من طبقة تجريد الأجهزة (HAL) المستندة إلى AIDL المشتركة قيد التطوير في
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.يتوفّر أحدث إصدار تم إصداره من واجهة برمجة التطبيقات Common HAL في
/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 الجديدة أي تغييرات يمكن أن تؤثر في الأمان.