نظرة عامة على طبقة تجريد الأجهزة (HAL)

طبقة تجريد الأجهزة (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 والإصدارات الأحدث

ما هي الخطوات التالية؟