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

طبقة تجريد الأجهزة (HAL) هي نوع من طبقات التجريد التي تتضمّن واجهة عادية يمكن لمورّدي الأجهزة تنفيذها. تتيح طبقة تجريد الأجهزة لمورّدي الأجهزة تنفيذ ميزات خاصة بالأجهزة ذات مستوى أدنى بدون التأثير في الرموز البرمجية في الطبقات ذات المستوى الأعلى أو تعديلها.

العبارات المطلوبة

في ما يلي قائمة بتعريفات المصطلحات المستخدَمة في هذا القسم من المستندات:

لغة تعريف واجهة نظام Android (AIDL)
لغة شبيهة بلغة Java تُستخدم لتحديد الواجهات بطريقة مستقلة عن لغة البرمجة المستخدَمة. تتيح لغة AIDL التواصل بين برامج HAL وخدمات HAL.
HAL المستند إلى Binder
طبقة تجريد الأجهزة (HAL) تتواصل مع العمليات الأخرى باستخدام استدعاءات التواصل البيني للعمليات (IPC) في Binder. يتم تشغيل طبقات HAL المستندة إلى Binder في عملية منفصلة عن العميل الذي يستخدمها. يتم تسجيل حِزم HAL التي تستخدم Binder لدى مدير خدمة حتى يتمكّن العملاء من الوصول إلى إمكاناتها. تكون طبقات تجريد الأجهزة (HAL) المكتوبة لنظام التشغيل Android 8 والإصدارات الأحدث مستندة إلى Binder.
عميل HAL
العملية التي تصل إلى خدمة HAL
واجهة HAL
الواجهة المشتركة التي يستخدمها كل من عميل HAL والخدمة للتواصل
خدمة طبقة تجريد الأجهزة (HAL)

الرمز البرمجي الخاص بالجهاز، مثل الرمز الذي يتواصل مع كاميرا جهازك المحدّد يجب تنفيذ جميع طبقات تجريد الأجهزة (HAL) المطلوبة والمدرَجة في مصفوفة التوافق للإصدار الذي تستهدفه في قسم المورّد. للمزيد من المعلومات حول مصفوفات التوافق، يُرجى الاطّلاع على مصفوفات التوافق.

يمكنك أيضًا إنشاء واجهة HAL جديدة أو توسيع واجهة HAL حالية للاستفادة من الإمكانات الفريدة للأجهزة.

لغة تعريف واجهة الأجهزة (HIDL)

لغة تُستخدَم لتحديد الواجهات بطريقة مستقلة عن لغة البرمجة المستخدَمة. تتيح لغة HIDL التواصل بين برامج HAL وخدمات HAL.

طبقة تجريد الأجهزة (HAL) التي تستخدم العملية نفسها (SP)

مجموعة محدودة من طبقات تجريد الأجهزة (HAL) المغلفة تتحكّم Google في العضوية في المجموعة. تشمل طبقات تجريد الأجهزة (HAL) الخاصة بموفّر الخدمة ما يلي:

  • Stable C mapper 5 HAL
  • OpenGL
  • Vulkan
  • ‫android.hidl.memory@1.0 (يوفّره نظام Android، ويتم تضمينه دائمًا)
  • android.hardware.renderscript@1.0
الطبقة الخارجية لواجهة HAL

خدمة HAL تم إنشاؤها قبل الإصدار 8 من نظام التشغيل Android، ولكن تم تضمينها في برنامج تضمين AIDL أو HIDL لتعمل مع الإصدار 8 من نظام التشغيل Android والإصدارات الأحدث.

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