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 ואילך חייבים לתמוך ב- HAL שנכתבו ב- HIDL, עם כמה יוצאים מן הכלל המפורטים להלן. HALs אלה יכולים להיות קלילים או לעבור. באנדרואיד 11, תומכים גם ב- HAL שנכתבו ב- AIDL. כל מחסומי ה- AIDL קשורים לקשירה.

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

דרישות מצב HAL

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

HALs מקושרים

אנדרואיד דורשת לקשור את ה- 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 . נדרש לקשירה אנדרואיד 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 .

הערה : אנדרואיד מספקת את ממשקי ה- HIDL הבאים אשר תמיד יהיו במצב מקושר: android.frameworks.* , android.system.* ו- android.hidl.* (למעט android.hidl.memory@1.0 כמתואר להלן).

חלוצי פססטרו

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

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

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

HALs מאותו תהליך

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

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

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

HALs קונבנציונאלי ומורשת

HALs קונבנציונאלי (הוצא משימוש ב- Android 8.0) הם ממשקים התואמים לממשק בינארי יישום בעל שם ומותאם ספציפי (ABI). חלק הארי של ממשקי מערכת אנדרואיד ( מצלמה , שמע , חיישנים וכו ') הם בצורה של HALs קונבנציונליים המוגדרים תחת חומרה / libhardware / include / hardware .

HALs מדור קודם (שהוצא משימוש גם ב- Android 8.0) הם ממשקים שקדמו ל- HALs קונבנציונאלי. כמה תת מערכות חשובות (Wi-Fi, שכבת ממשק רדיו ו- Bluetooth) הן HALs מדור קודם. אמנם אין דרך אחידה או סטנדרטית לתאר HAL מדור קודם, אך כל מה שקדם לאנדרואיד 8.0 שאינו HAL קונבנציונאלי הוא HAL מדור קודם. חלקים מכמה HAL מדור קודם כלולים ב- libhardware_legacy , בעוד שחלקים אחרים משולבים לאורך בסיס הקוד.