بدءًا من نظام التشغيل Android 14، أصبحت واجهة "HAL" للصوت باستخدام واجهة AIDL الثابتة. الشركاء ننصح مورّدي المنظومة على الرقاقة (SoC) بإعادة استخدام طبقة تجريد الأجهزة (HAL) الصوتية لديهم واجهة AIDL.
يؤدي تمديد مكتبة libaudiohal
إلى إضافة إطار عمل متوافق مع معيار AIDL HAL.
من خلال تنفيذ AIDL، تكون مواصفات ضبط سياسة الصوت
تم نقلهم إلى AIDL HAL. نتيجة لهذا التغيير، يحصل مدير السياسة الصوتية (APM) على
من بروتوكول HAL بدلًا من استخدامه من ملف XML الذي يوفره المورد
الملف.
واجهة برمجة تطبيقات Audio AIDL HAL API
يصف هذا القسم واجهات برمجة التطبيقات الأساسية والتأثيرات وHAL API الخاصة بلغة AIDL.
استخدام التنفيذ التلقائي لواجهة برمجة تطبيقات AIDL على
/hardware/interfaces/audio/aidl/default/
كمرجع عند تطبيق إصدارات جديدة من HALs الصوتية التي
التفاعل مع برامج تشغيل النواة.
يمكنك الاطّلاع على ملف Audio HAL README لبنية دليل ملف الصوت HAL في دليل AIDL.
طبقة تجريد الأجهزة (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) التي تستخدم لغة AIDL:
IFactory.aidl
هي نقطة الدخول إلى واجهة برمجة التطبيقات.- يحتوي
Descriptor.aidl
على جميع المعلومات، مثل الإمكانات المناسبة لتطبيق التأثير. - يحدِّد
Capability.aidl
إمكانات التأثير التي لا تتغيّر في وقت التشغيل. - تحدِّد
Parameter.aidl
جميع المَعلمات المتوافقة مع مثيل التأثير. - يُستخدَم
IEffect.aidl
لضبط حالات تأثير معيّنة والتحكّم فيها. يشير إلى العناصر الخاصة بالتأثير التي تحمل اسم التأثير.
أحدث إصدار من واجهة برمجة تطبيقات التأثيرات HAL API قيد التطوير في
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.آخر إصدار تم إصداره من واجهة برمجة تطبيقات HAL للتأثيرات متاح الآن
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
راجِع التأثيرات الصوتية للحصول على المزيد من المعلومات. المعلومات.
طبقة تجريد الأجهزة (HAL) المشتركة
هياكل البيانات والواجهات المشتركة بين العديد من HALs، مثل 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 API
VTS جديد يتم توفير الاختبارات لواجهة AIDL.
ما من تغييرات في إصدار HAL الجديد يمكن أن تؤثر في الأمان.