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

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

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

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

שפת ההגדרה של ממשק Android (AIDL)
שפה דמוית Java שמשמשת להגדרת ממשקים באופן שלא תלוי בשפת התכנות שבה נעשה שימוש. AIDL מאפשר תקשורת בין לקוחות HAL ושירותי HAL.
HALBinderized
HAL שמקשר עם תהליכים אחרים באמצעות binder inter-processingCommunications (IPC) שיחות. תהליכי HAL מנוהלים מופעלים בתהליך נפרד מהלקוח שמשתמש בהם. ממשקי HAL מנוהלים רשומים אצל מנהל שירות, כדי שהלקוחות יוכלו לגשת ליכולות שלהם. אישורי 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, אבל ארוז wrapper של AIDL או HIDL לעבודה עם Android מגרסה 8 ואילך.

מה השלב הבא?