אובייקט של ממשק הספק

במסמך הזה מתוארת התכנון של אובייקט ממשק הספק (אובייקט VINTF), שמאגד מידע רלוונטי על מכשיר ומאפשר גישה למידע הזה דרך API שניתן לשלוח אליו שאילתות.

עיצוב אובייקט VINTF

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

איור 1. מניפסטים, מטריצות תאימות ומידע שניתן לאסוף בזמן ריצה.

עיצוב האובייקט של VINTF מספק את האפשרויות הבאות לרכיבי המכשיר והמסגרת:

במכשיר לגבי המסגרת

אובייקט ה-VINTF חייב להיות מהימן ולספק את אותו מידע מלא, ללא קשר למועד שבו מבקשים את האובייקט (ראו אזהרות).

מניפסטים ומטריצות

החל מגרסה 8.0 של Android, ממשק API בסביבת זמן הריצה שולח שאילתה לגבי מה שנמצא במכשיר ושולח את המידע הזה לשרת העדכונים Over-the-Air‏ (OTA) ולגורמים אחרים שעשויים להתעניין בו (כמו CTS‏ DeviceInfo). חלק מהמידע מאוחזר בסביבת זמן הריצה וחלק מוגדר באופן סטטי.

  • מניפסט המכשיר מתאר את הרכיב הסטטי של מה שהמכשיר יכול לספק למסגרת.
  • מטריצה של תאימות המסגרת מתארת את מה שמערכת Android מצפה ממכשיר נתון. המטריצה היא ישות סטטית שההרכב שלה נקבע באופן ידני במהלך הפיתוח של הגרסה הבאה של מסגרת Android.
  • מניפסט המסגרת מתאר שירותים ברמה גבוהה שהמסגרת יכולה לספק למכשיר.
  • במטריצה של תאימות המכשירים מתוארים השירותים שהמסגרת צריכה לספק לתמונת הספק. ההרכב שלו נקבע באופן ידני במהלך הפיתוח של המכשיר.

צריך להתאים בין שני זוגות המניפסטים והמטריצות האלה בזמן ה-OTA כדי לוודא שמכשיר יכול לקבל עדכוני מסגרת שתואמים ליכולות שלו. באופן כללי, מניפסט מתאר את מה שסופק, ומטריצה של תאימות מתארת את מה שנדרש.

בקטע הזה מפורטים הפרטים הבאים לגבי מניפסטים ומטריצות:

  • מניפסטים מגדירים את המניפסט של המכשיר, את המניפסט של המסגרת ואת הסכימה של קובץ המניפסט.
  • Compatibility Matrixes מגדיר את הסכימה של מטריצת התאימות.
  • במאמר מחזור החיים של FCM מוסבר איך מוציאים משימוש ומסירים ממשק HAL של HIDL, ואיך משנים את קבצי FCM כך שישקפו את הסטטוס של גרסת ה-HAL.
  • בקטע פיתוח DM מוסבר איך ספקים יכולים להגדיר ולהצהיר על גרסת היעד של FCM במניפסט של המכשיר למכשירים חדשים, או להטמיע גרסאות HAL חדשות ולהגדיל את גרסת היעד של FCM כשמשדרגים את קובץ האימג' של הספק למכשירים ישנים.
  • Matching Rules (כללי התאמה) מגדירים את הכללים להתאמה בין מטריצה של תאימות לבין מניפסט.