ארכיטקטורת אנדרואיד

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

ארכיטקטורת מערכת אנדרואיד מכילה את הרכיבים הבאים:

סקירה כללית של ארכיטקטורת מערכת אנדרואיד
איור 1. ארכיטקטורת מערכת אנדרואיד
  • מסגרת יישום . מסגרת היישום משמשת לרוב מפתחי אפליקציות. כמפתחי חומרה, עליך להיות מודע לממשקי API למפתחים מכיוון שרבים ממפים ישירות לממשקי ה-HAL הבסיסיים ויכולים לספק מידע מועיל לגבי הטמעת מנהלי התקנים.
  • קלסר IPC . מנגנון Binder Inter-Process Communication (IPC) מאפשר למסגרת האפליקציה לחצות גבולות תהליכים ולהתקשר לקוד שירותי מערכת אנדרואיד. זה מאפשר לממשקי API של מסגרת ברמה גבוהה לקיים אינטראקציה עם שירותי מערכת אנדרואיד. ברמת מסגרת האפליקציה, התקשורת הזו מוסתרת מהמפתח ונראה שהדברים "פשוט עובדים".
  • שירותי מערכת . שירותי המערכת הם רכיבים מודולריים וממוקדים כגון מנהל חלונות, שירות חיפוש או מנהל הודעות. פונקציונליות שנחשפת על ידי ממשקי API של מסגרת יישומים מתקשרת עם שירותי המערכת כדי לגשת לחומרה הבסיסית. אנדרואיד כוללת שתי קבוצות של שירותים: מערכת (כגון מנהל החלונות ומנהל ההתראות) ומדיה (שירותים הכרוכים בהשמעה והקלטת מדיה).
  • שכבת הפשטת החומרה (HAL) . HAL מגדיר ממשק סטנדרטי עבור ספקי חומרה ליישום, המאפשר לאנדרואיד להיות אגנוסטית לגבי יישומי מנהלי התקנים ברמה נמוכה יותר. שימוש ב-HAL מאפשר לך ליישם פונקציונליות מבלי להשפיע או לשנות את המערכת ברמה הגבוהה יותר. יישומי HAL נארזים במודולים ונטענים על ידי מערכת אנדרואיד בזמן המתאים. לפרטים, ראה שכבת הפשטת חומרה (HAL) .
  • ליבת לינוקס . פיתוח מנהלי התקנים שלך דומה לפיתוח מנהל התקן לינוקס טיפוסי. אנדרואיד משתמשת בגרסה של ליבת לינוקס עם מספר תוספות מיוחדות כגון Low Memory Killer (מערכת ניהול זיכרון אגרסיבית יותר בשימור זיכרון), נעילות Wake (שירות מערכת PowerManager ), מנהל ההתקן של Binder IPC ותכונות חשובות נוספות. עבור פלטפורמה משובצת ניידת. תוספות אלו מיועדות בעיקר לפונקציונליות המערכת ואינן משפיעות על פיתוח דרייברים. אתה יכול להשתמש בכל גרסה של הליבה כל עוד היא תומכת בתכונות הנדרשות (כגון מנהל ההתקן של הקלסר). עם זאת, אנו ממליצים להשתמש בגרסה העדכנית ביותר של ליבת אנדרואיד. לפרטים, ראה בניית גרעינים .

שפת הגדרת ממשק HAL (AIDL/HIDL)

אנדרואיד 8.0 עיצב מחדש את מסגרת מערכת ההפעלה אנדרואיד (בפרויקט המכונה Treble ) כדי להקל, מהר יותר וזול ליצרנים לעדכן מכשירים לגרסה חדשה של אנדרואיד. בארכיטקטורה החדשה הזו, שפת ההגדרה של ממשק HAL (HIDL, מבוטא "hide-l") מציינת את הממשק בין HAL למשתמשים שלו, ומאפשרת להחליף את מסגרת האנדרואיד מבלי לבנות מחדש את ה-HALs. באנדרואיד 10, תכונות HIDL שולבו ב-AIDL. מאז, HIDL הוצא משימוש והוא נמצא בשימוש רק על ידי תת-מערכות שעדיין לא עברו המרה ל-AIDL.

טרבל מפריד בין הטמעת הספק (תוכנה ספציפית למכשיר, ברמה נמוכה יותר שנכתבה על ידי יצרני סיליקון) למסגרת מערכת ההפעלה של אנדרואיד באמצעות ממשק ספק חדש. ספקים או יצרני SOC בונים HAL פעם אחת וממקמים אותם במחיצת /vendor במכשיר; לאחר מכן ניתן להחליף את המסגרת, במחיצה משלה, בעדכון אוויר (OTA) מבלי להדר מחדש את ה-HALs.

ההבדל בין ארכיטקטורת אנדרואיד מדור קודם לארכיטקטורה הנוכחית, מבוססת IDL, הוא בשימוש בממשק הספק:

  • ב-Android 7.x ואילך, לא קיים ממשק יצרן רשמי, ולכן יצרני מכשירים חייבים לעדכן חלקים גדולים מקוד האנדרואיד כדי להעביר מכשיר לגרסה חדשה יותר של אנדרואיד:

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

    איור 3. סביבת עדכוני אנדרואיד נוכחית

כל המכשירים החדשים שיושקו עם אנדרואיד 8.0 ואילך יכולים לנצל את הארכיטקטורה החדשה. כדי להבטיח תאימות קדימה של יישומי ספקים, ממשק הספק מאומת על ידי ה- Vendor Test Suite (VTS) , המקביל ל- Comatibility Test Suite (CTS) . אתה יכול להשתמש ב-VTS כדי להפוך את בדיקות ליבת HAL ומערכת ההפעלה לאוטומטיות הן בארכיטקטורות אנדרואיד מדור קודם והן בארכיטקטורות הנוכחיות.

משאבי אדריכלות

לפרטים על ארכיטקטורת אנדרואיד, עיין בסעיפים הבאים:

  • סוגי HAL . מתאר HALs משולבים, מעבר, אותו תהליך (SP) ו-HAL מדור קודם.
  • איידל . תיעוד על AIDL, בין אם הוא משמש באופן כללי או כממשק HAL.
  • HIDL (כללי) . מכיל מידע כללי על הממשק בין HAL למשתמשים בו.
  • HIDL (C++) . מכיל פרטים ליצירת יישומי C++ של ממשקי HIDL.
  • HIDL (ג'אווה) . מכיל פרטים על ממשקי ה-Java עבור ממשקי HIDL.
  • ConfigStore HAL . מתאר ממשקי API לגישה לפריטי תצורה לקריאה בלבד המשמשים להגדרת מסגרת Android.
  • שכבות על עץ מכשיר . מספק פרטים על שימוש בשכבות עץ של מכשירים (DTOs) באנדרואיד.
  • ערכת פיתוח מקורית של ספק (VNDK) . מתאר את קבוצת הספריות הבלעדיות לספק להטמעת HALs של ספקים.
  • אובייקט ממשק ספק (VINTF) . מתאר את האובייקטים שצוברים מידע רלוונטי על מכשיר והופכים מידע זה לזמין באמצעות API שניתן לשאילתה.
  • SELinux עבור אנדרואיד 8.0 . פרטים שינויים והתאמות אישיות של SELinux.

בנוסף למשאבים באתר זה, חברי צוות Treble פרסמו את Treble: Fast Software Updates by Creating an Equilibrium in a Active Software Ecosystem of Globally Stakeholders . העיתון הוא חינם לחברי ACM ומי שאינם חברים יכולים לרכוש או לקרוא את התקציר.