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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

في Android 8.0 والإصدارات الأحدث ، تتم إعادة كتابة الطبقات ذات المستوى الأدنى لتبني بنية جديدة أكثر نمطية. يجب أن تدعم الأجهزة التي تعمل بنظام التشغيل Android 8.0 والإصدارات الأحدث HALs المكتوبة بلغة HIDL ، مع بعض الاستثناءات المدرجة أدناه. يمكن ربط HALs أو العبور. في Android 11 ، يتم أيضًا دعم HALs المكتوبة في AIDL. يتم ربط جميع AIDL HALs.

  • HALs ملزم . يتم التعبير عن HALs بلغة تعريف واجهة HAL (HIDL) أو لغة تعريف واجهة Android (AIDL). تحل HALs هذه محل كلاً من HALs التقليدية والقديمة المستخدمة في الإصدارات السابقة من Android. في Binderized HAL ، يتواصل إطار عمل Android و HALs مع بعضهما البعض باستخدام مكالمات اتصال بين العمليات (IPC). يجب أن تدعم جميع الأجهزة التي يتم تشغيلها بنظام Android 8.0 أو إصدار أحدث HALs المرتبطة فقط.

  • عبور HALs . طبقة HALs تقليدية أو قديمة مغلفة بـ HIDL تقوم هذه HALs بتغليف HALs الموجودة ويمكن أن تخدم HAL في الوضعين المرتبطين ونفس العملية (العبور). يمكن للأجهزة التي تقوم بالترقية إلى Android 8.0 استخدام HALs العبور.

متطلبات وضع HAL

جهاز يمر من خلال موثق
ابدأ باستخدام Android 8.0 يجب أن تكون HALs المُدرجة في HALs العبور. يتم ربط كافة HALs الأخرى (بما في ذلك HALs التي تعد امتدادات البائعين).
قم بالترقية إلى Android 8.0 يجب أن تكون HALs المُدرجة في HALs العبور. يجب ربط HALs المدرجة في HALs Binderized.
يمكن أن تكون جميع HALs الأخرى التي توفرها صورة البائع في وضع العبور أو وضع الربط. في جهاز متوافق تمامًا مع Treble ، يجب ربط كل هذه الأشياء.

HALs ملزم

يتطلب Android أن يتم ربط HALS التالية على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة إطلاق أو أجهزة ترقية:

  • android.hardware.biometrics.fingerprint@2.1 يستبدل بصمة الإصبع التي لم تعد في Android 8.0.
  • android.hardware.configstore@1.0 . الجديد في Android 8.0.
  • android.hardware.dumpstate@1.0 . لا يمكن تلألؤ الواجهة الأصلية التي يوفرها HAL وتم تغييرها. لهذا السبب ، يجب إعادة تطبيق dumpstate_board على جهاز معين (هذا HAL اختياري).
  • android.hardware.graphics.allocator@2.0 . مطلوب أن يتم ربطه في Android 8.0 بحيث لا يلزم مشاركة واصفات الملفات بين العمليات الموثوقة وغير الموثوق بها.
  • android.hardware.radio@1.0 . يستبدل الواجهة التي يوفرها rild التي تعيش في العملية الخاصة بها.
  • android.hardware.usb@1.0 الجديد في Android 8.0.
  • android.hardware.wifi@1.0 . الجديد في Android 8.0 ، يحل محل مكتبة Wi-Fi HAL القديمة التي تم تحميلها في system_server
  • android.hardware.wifi.supplicant@1.0 . واجهة تعامل HIDL عبر عملية wpa_supplicant الحالية.

عبور HALs

يتطلب Android أن تكون HALs التالية في وضع العبور على جميع أجهزة Android بغض النظر عما إذا كانت أجهزة تشغيل أو أجهزة ترقية:

  • android.hardware.graphics.mapper@1.0 . ذاكرة الخرائط في العملية التي تعيش فيها.
  • android.hardware.renderscript@1.0 . يمر العناصر في نفس العملية (ما يعادل openGL ).

يجب ربط جميع HALs غير المدرجة أعلاه لأجهزة التشغيل.

HALs بنفس العملية

يتم فتح HALs للعملية نفسها (SP-HALs) دائمًا في نفس العملية التي يتم استخدامها فيها. وهي تشمل جميع HALs التي لم يتم التعبير عنها في HIDL بالإضافة إلى بعضها غير المرتبط. تتحكم Google فقط في العضوية في مجموعة SP-HAL ، بدون استثناءات.

تتضمن SP-HALs ما يلي:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (يتم توفيره من خلال نظام Android ، يمر دائمًا)
  • android.hardware.graphics.mapper@1.0</code>
  • android.hardware.renderscript@1.0