طبقة تجريد الأجهزة (HAL) هي نوع من طبقات التجريد التي تتضمّن واجهة عادية لمورّدي الأجهزة لتنفيذها. تسمح واجهة HAL لمورّدي الأجهزة بتنفيذ ميزات من المستوى الأدنى خاصة بالأجهزة بدون التأثير في الرمز البرمجي أو تعديله في الطبقات ذات المستوى الأعلى.
الأحكام المطلوبة
في ما يلي قائمة بتعريفات المصطلحات المستخدَمة في هذا القسم من الادّعاءات:
- لغة تعريف واجهة Android (AIDL)
- لغة مشابهة للغة Java تُستخدَم لتحديد الواجهات بطريقة مستقلة عن لغة البرمجة المستخدَمة. يسمح AIDL بالتواصل بين عملاء HAL وخدمات HAL.
- HAL المرتبط
- HAL الذي يتواصل مع العمليات الأخرى باستخدام طلبات التواصل بين العمليات (IPC) لبرنامج الربط يتم تشغيل واجهات HAL المُجمَّعة في عملية منفصلة عن العميل الذي يستخدمها. يتم تسجيل HALs المُجمَّعة في مدير خدمة حتى يتمكّن العملاء من الوصول إلى إمكاناتها. يتم ربط واجهات HAL المكتوبة لنظام التشغيل Android 8 والإصدارات الأحدث.
- HAL client
- العملية التي تصل إلى خدمة HAL
- واجهة HAL
- الواجهة المشتركة التي يستخدمها كلّ من برنامج HAL للعميل والخدمة للتواصل
- خدمة HAL
الرمز المخصّص للأجهزة، مثل الرمز الذي يتعامل مع كاميرا جهازك المحدّد يجب تنفيذ جميع HALs المطلوبة الواردة في مصفوفة التوافق للإصدار الذي تستهدفه في قسم البائع. لمزيد من المعلومات عن مصفوفات التوافق، يُرجى الاطّلاع على مصفوفات التوافق.
يمكنك أيضًا إنشاء واجهة HAL جديدة أو توسيع واجهة HAL لتوفير ميزات فريدة لجهازك.
- لغة تعريف واجهة الأجهزة (HIDL)
لغة تُستخدَم لتعريف الواجهات بطريقة مستقلة عن لغة البرمجة المستخدَمة يتيح HIDL التواصل بين عملاء HAL وخدمات HAL.
- HAL لعملية التطبيق نفسها (SP)
مجموعة محدودة من واجهات HAL المُغلفة تتحكّم Google في إمكانية الانضمام إلى المجموعة. تشمل واجهات برمجة التطبيقات لخدمات الشركاء ما يلي:
- الإصدار الثابت من حزمة HAL لبرنامج C mapper 5
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (يوفّره نظام Android، ويتم تغليفه دائمًا)
- android.hardware.renderscript@1.0
- HAL المُغلف
خدمة HAL تم إنشاؤها قبل الإصدار 8 من نظام التشغيل Android، ولكن تم تغليفها في ملف ملف برمجي AIDL أو HIDL لتعمل مع الإصدار 8 من نظام التشغيل Android والإصدارات الأحدث
ما هي الخطوات التالية؟
- للتعرّف على كيفية تنفيذ خدمة HAL، يمكنك الرجوع إلى AIDL لواجهة HAL.
- للتعرّف على كيفية إنشاء واجهة HAL حالية أو توسيع نطاقها، يُرجى الرجوع إلى الواجهات الموسّعة المرفقة.