Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

أنواع 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. ملفوفة HIDL التقليدية أو القديمة . تقوم HALs هذه بتغليف HALs الموجودة ويمكن أن تخدم HAL في أوضاع Binderized ونفس العملية (العبور). يمكن للأجهزة التي تقوم بالترقية إلى 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 يستبدل fingerprintd التي لم تعد في 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 الحالية.

ملاحظة : يوفر Android واجهات HIDL التالية والتي ستكون دائمًا في وضع الربط: android.frameworks.* و android.system.* و android.hidl.* (باستثناء android.hidl.memory@1.0 كما هو موضح أدناه).

عبور 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 .
  • android.hardware.renderscript@1.0

HALs التقليدية والموروثة

تعد HALs التقليدية (التي تم إهمالها في Android 8.0) واجهات تتوافق مع واجهة تطبيق ثنائية (ABI) محددة وذات إصدار محدد. الجزء الأكبر من واجهات نظام Android ( الكاميرا والصوت وأجهزة الاستشعار وما إلى ذلك) في شكل HALs التقليدية ، والتي يتم تحديدها ضمن الأجهزة / libhardware / التضمين / الأجهزة .

تعد HALs القديمة (التي تم إهمالها أيضًا في Android 8.0) واجهات تسبق HALs التقليدية. هناك عدد قليل من الأنظمة الفرعية المهمة (Wi-Fi وطبقة واجهة الراديو والبلوتوث) عبارة عن HALs قديمة. على الرغم من عدم وجود طريقة موحدة أو موحدة لوصف HAL ​​القديم ، فإن أي شيء يسبق إصدار Android 8.0 ليس HAL تقليديًا هو عبارة عن HAL قديم. تم تضمين أجزاء من بعض HALs القديمة في libhardware_legacy ، بينما تتخلل الأجزاء الأخرى في جميع أنحاء قاعدة الكود.