אדריכלות אנדרואיד

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

סקירה כללית של ארכיטקטורת מערכת אנדרואיד
ארכיטקטורת מערכת איור 1. אנדרואיד
  • במסגרת יישום. מסגרת היישומים משמשת לרוב את מפתחי האפליקציות. כמפתח חומרה, עליך להיות מודע לממשקי API של מפתחים שכן רבים ממפים אותם ישירות לממשקי HAL הבסיסיים ויכולים לספק מידע מועיל לגבי יישום מנהלי התקנים.
  • בינדר IPC. מנגנון ה- Binder Inter-Process Communication (IPC) מאפשר למסגרת היישומים לחצות גבולות תהליכים ולהיכנס לקוד שירותי מערכת Android. זה מאפשר ממשקי API למסגרת ברמה גבוהה לתקשר עם שירותי מערכת Android. ברמת מסגרת האפליקציות, תקשורת זו מוסתרת מהמפתח ונראה שדברים "פשוט עובדים".
  • שירותי מערכת. שירותי המערכת הינם רכיבים מודולריים וממוקדים כגון Window Manager, Service Search או מנהל הודעות. פונקציונליות שנחשפת על ידי ממשקי API של מסגרת יישומים מתקשרת עם שירותי המערכת כדי לגשת לחומרה הבסיסית. Android כולל שתי קבוצות של שירותים: מערכת (כגון מנהל חלונות ומנהל הודעה ') תקשורת (שירותים מעורבות לנגן ולהקליט תקשורת).
  • שכבת הפשטת חומרה (HAL). A HAL מגדיר ממשק סטנדרטי עבור יצרני חומרה ליישם, המאפשר לאנדרואיד להיות אגנוסטי לגבי יישומי מנהלי התקנים ברמה נמוכה יותר. שימוש ב- HAL מאפשר לך ליישם פונקציונליות מבלי להשפיע או לשנות את המערכת ברמה גבוהה יותר. יישומי HAL ארוזים במודולים ונטענים על ידי מערכת האנדרואיד בזמן המתאים. לפרטים, ראה שכבת הפשטת חומרה (HAL) .
  • הקרנל לינוקס. פיתוח מנהלי ההתקנים שלך דומה לפיתוח מנהל התקן לינוקס טיפוסי. שימושים אנדרואיד גרסה של הקרנל לינוקס עם כמה תוספות מיוחדות כגון נמוך זיכרון רוצח (מערכת ניהול הזיכרון כי הוא אגרסיבי יותר בזיכרון שמירה), נעילות של התעוררות (א PowerManager שירות במערכת), הנהג IPC בינדר, ותכונות אחרות חשובות לפלטפורמה מובנית מובנית. תוספות אלה מיועדות בעיקר לפונקציונליות המערכת ואינן משפיעות על התפתחות הנהג. אתה יכול להשתמש בכל גרסה של הגרעין כל עוד הוא תומך בתכונות הנדרשות (כגון מנהל ההתקן של קלסר). עם זאת, אנו ממליצים להשתמש בגרסה העדכנית ביותר של גרעין אנדרואיד. לפרטים ראה בניין גרעינים .

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

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

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

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

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

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

    איור 3. סביבת עדכון שוטף אנדרואיד

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

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

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

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

בנוסף למשאבים שבאתר הזה, חברי צוות טרבל שפורסם טרבל: עדכוני תוכנה מהירה על ידי יצירת שיווי משקל במערכת אקולוגית תוכנה Active של המבוזרת ברחבי העולם בעלי עניין . העיתון חינם לחברי ACM ומי שאינם חברים יכולים לרכוש או לקרוא את התקציר.