סקירה כללית של שכבת הפשטה של החומרה (HAL)

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

התנאים הנדרשים

זוהי רשימה של הגדרות למונחים שמופיעים בקטע הזה של מסמכי התיעוד:

שפת ההגדרה של ממשק Android (AIDL)
שפה דמוית Java שמשמשת להגדרת ממשקים באופן שלא תלוי בשפת התכנות שבה משתמשים. באמצעות AIDL, אפשר לתקשר בין לקוחות HAL לשירותי HAL.
HALBinderized
HAL שמקשר עם תהליכים אחרים באמצעות קריאות של binder inter-Process תקשורת (IPC). תהליכי HAL מנוהלים מופעלים בתהליך נפרד מהלקוח שמשתמש בהם. HALs עם חלוקה לדפים רשומים במנהל שירות, כדי שלקוחות יוכלו לגשת ליכולות שלהם. רכיבי HAL שנכתבו ל-Android מגרסה 8 ואילך מקושרים זה לזה.
לקוח HAL
התהליך לגישה לשירות HAL.
ממשק HAL
הממשק המשותף שמשמש גם את לקוח ה-HAL וגם את שירות התקשורת.
שירות HAL

הקוד הספציפי לחומרה, כמו הקוד שלוקח למצלמה של המכשיר הספציפי. אתם צריכים להטמיע את כל רכיבי ה-HAL הנדרשים שמפורטים במטריצת התאימות של הגרסה שאתם מטרגטים במחיצת הספק. למידע נוסף על מטריצות תאימות, ראו מטריצות תאימות.

אפשר גם ליצור ממשק HAL חדש או להרחיב את הממשק של HAL כדי לתמוך ביכולות הייחודיות של החומרה.

Hardware Interface Settings Language (שפת הגדרה של ממשק חומרה) (HIDL)

שפה שמשמשת להגדרת ממשקים באופן שלא תלוי בשפת התכנות שבה משתמשים. HIDL מאפשרת תקשורת בין לקוחות HAL לשירותי HAL.

HAL עם תהליך זהה (SP)

קבוצה מוגבלת של רכיבי HAL בתוך אריזה. החברות בקבוצה נשלטת על ידי Google. יעדי SP HAL כוללים:

  • ממפה C יציב 5 HAL
  • OpenGL
  • וולקן
  • android.hidl.memory@1.0 (מסופק על ידי מערכת Android, תמיד ארוז)
  • android.hardware.renderscript@1.0
HAL ארוז

שירות HAL שנוצר לפני Android 8, אבל עטוף ב-AIDL או HIDL כדי לעבוד עם Android מגרסה 8 ואילך.

מה השלב הבא?