סקירה כללית של שכבת הפשטת החומרה, סקירה כללית של שכבת הפשטת החומרה, סקירת שכבת הפשטת החומרה

באנדרואיד 8.0 ומעלה, השכבות ברמה נמוכה יותר נכתבות מחדש כדי לאמץ ארכיטקטורה חדשה ומודולרית יותר. מכשירים המריצים אנדרואיד 8.0 ומעלה חייבים לתמוך ב-HALs שנכתבו ב-HIDL, עם כמה חריגים המפורטים להלן. HALs אלה יכולים להיות כרוכים או לעבור. באנדרואיד 11, HALs שנכתבו ב-AIDL נתמכים גם הם. כל AIDL HALs משולבים.

  • HALs מכורכים . HALs המתבטאים בשפת הגדרת ממשק HAL (HIDL) או שפת הגדרת ממשק אנדרואיד (AIDL). HALs אלה מחליפים גם HALs קונבנציונליים וגם מדור קודם בשימוש בגרסאות קודמות של אנדרואיד. ב-Binderized HAL, מסגרת האנדרואיד ו-HALs מתקשרים זה עם זה באמצעות קריאות תקשורת בין תהליכים של קשרים (IPC). כל המכשירים המופעלים עם אנדרואיד 8.0 ואילך חייבים לתמוך ב-HALs משולבים בלבד.

  • HALs מעבר . HALs קונבנציונלי עטוף HIDL או Legacy HALs אלה עוטפים HALs קיימים ויכולים לשרת את ה-HAL במצבי כריכה ואופנים באותו תהליך (מעבר). מכשירים שמשדרגים לאנדרואיד 8.0 יכולים להשתמש ב-HAL מעבר.

דרישות מצב HAL

התקן עובר דרך מקושר
הפעלה עם אנדרואיד 8.0 HALs המפורטים ב- Passthrough HALs חייבים להיות מעבר. כל שאר ה-HALs משולבים (כולל HALs שהם הרחבות של ספקים).
שדרג לאנדרואיד 8.0 HALs המפורטים ב- Passthrough HALs חייבים להיות מעבר. HALs הרשומים ב- HALs משולבים חייבים להיות מכורכים.
כל שאר ה-HALs שסופקו על ידי תמונת הספק יכולים להיות במצב מעבר או ב-binderized. במכשיר תואם טרבל לחלוטין, כל אלה חייבים להיות כרוכים.

HALs קשורים

אנדרואיד דורשת שה-HALS הבא יתחבר בכל מכשירי האנדרואיד, ללא קשר אם הם מכשירי השקה או מכשירי שדרוג:

  • android.hardware.biometrics.fingerprint@2.1 . מחליף fingerprintd שכבר לא נמצאת באנדרואיד 8.0.
  • android.hardware.configstore@1.0 . חדש באנדרואיד 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 . חדש באנדרואיד 8.0.
  • android.hardware.wifi@1.0 . חדש באנדרואיד 8.0, מחליף את ספריית ה-Wi-Fi HAL הוותיקה שנטענה ל- system_server
  • android.hardware.wifi.supplicant@1.0 . ממשק HIDL מעל תהליך wpa_supplicant הקיים.

HALs מעבר

אנדרואיד דורשת שמכשירי ה-HAL הבאים יהיו במצב מעבר בכל מכשירי האנדרואיד, ללא קשר אם הם מכשירי השקה או מכשירי שדרוג:

  • android.hardware.graphics.mapper@1.0 . ממפה את הזיכרון לתהליך שבו הוא חי.
  • android.hardware.renderscript@1.0 . מעביר פריטים באותו תהליך (שווה ערך ל- openGL ).

כל ה-HALs שאינם רשומים למעלה חייבים להיות משולבים עבור התקני השקה.

HALs באותו תהליך

HALs עם אותו תהליך (SP-HAL) נפתחים תמיד באותו תהליך שבו הם משמשים. הם כוללים את כל ה-HALs שלא באים לידי ביטוי ב-HIDL, כמו גם את כל ה-HALs שאינם משולבים. החברות בסט SP-HAL נשלטת רק על ידי Google, ללא חריגים.

SP-HALs כוללים את הדברים הבאים:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (מסופק על ידי מערכת אנדרואיד, תמיד עובר)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0