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