סקירה כללית על הארכיטקטורה

פרויקט הקוד הפתוח של Android ‏ (AOSP) הוא קוד מקור של Android שזמין לציבור וניתן לשינוי. כל אחד יכול להוריד ולשנות את ה-AOSP במכשיר שלו. ‫AOSP מספק הטמעה מלאה ופונקציונלית של פלטפורמת Android לנייד.

יש שני רמות של תאימות למכשירים שמטמיעים AOSP: תאימות ל-AOSP ותאימות ל-Android. מכשיר שתואם ל-AOSP צריך לעמוד בדרישות שמפורטות במסמך הגדרת התאימות (CDD). מכשיר שתואם ל-Android צריך לעמוד בדרישות שמפורטות ב-CDD וב-VSR, ולעבור בדיקות כמו אלה שב-Vendor Test Suite (VTS) וב-Compatibility Test Suite (CTS). מידע נוסף על תאימות ל-Android זמין בתוכנית התאימות של Android.

ארכיטקטורת AOSP

מערך התוכנות של AOSP מכיל את השכבות הבאות:

ארכיטקטורת סטאק התוכנות של AOSP.

איור 1. ארכיטקטורת סטאק התוכנות של AOSP.

בהמשך מופיעה רשימת הגדרות למונחים שמופיעים באיור 1:

אפליקציית Android
אפליקציה שנוצרה רק באמצעות Android API. חנות Google Play היא פלטפורמה פופולרית לחיפוש ולהורדה של אפליקציות ל-Android, אבל יש גם הרבה אפשרויות אחרות. במקרים מסוימים, יצרן מכשיר עשוי לרצות להתקין מראש אפליקציית Android כדי לתמוך בפונקציונליות הבסיסית של המכשיר. אם אתם מעוניינים לפתח אפליקציות ל-Android, תוכלו להיעזר במידע שבכתובת developers.android.com.
אפליקציה עם הרשאות מיוחדות
אפליקציה שנוצרה באמצעות שילוב של ממשקי Android ו-API של המערכת. האפליקציות האלה צריכות להיות מותקנות מראש במכשיר כאפליקציות עם הרשאות מיוחדות.
אפליקציה של יצרן המכשיר
אפליקציה שנוצרה באמצעות שילוב של Android API,‏ System API וגישה ישירה להטמעה של Android framework. יצרן המכשיר עשוי לגשת ישירות לממשקי API לא יציבים במסגרת Android, ולכן האפליקציות האלה צריכות להיות מותקנות מראש במכשיר, ואפשר לעדכן אותן רק כשמעדכנים את תוכנת המערכת של המכשיר.
System API
ממשק ה-API של המערכת מייצג ממשקי API של Android שזמינים רק לשותפים ול-OEM לצורך הכללה באפליקציות בחבילה. ממשקי ה-API האלה מסומנים ב-@SystemApi בקוד המקור.
Android API
Android API הוא ממשק API שזמין לציבור ומיועד למפתחים של אפליקציות Android של צד שלישי. למידע על Android API, אפשר לעיין בהפניית Android API.
‫Android framework
קבוצה של מחלקות Java, ממשקים וקוד אחר שעבר קומפילציה מראש, שעליהם מבוססות האפליקציות. חלקים מהמסגרת נגישים לציבור באמצעות Android API. חלקים אחרים במסגרת זמינים רק ליצרני ציוד מקורי (OEM) באמצעות ממשקי ה-API של המערכת. קוד של Android framework פועל בתוך תהליך של אפליקציה.
שירותי מערכת
שירותי המערכת הם רכיבים מודולריים וממוקדים כמו system_server,‏ SurfaceFlinger ו-MediaService. הפונקציונליות שנחשפת על ידי Android framework API מתקשרת עם שירותי המערכת כדי לגשת לחומרה הבסיסית.
Android runtime (ART)
סביבת זמן ריצה של Java שסופקה על ידי AOSP. ‫ART מבצע את התרגום של קוד הבייט של האפליקציה להוראות ספציפיות למעבד שמופעלות על ידי סביבת זמן הריצה של המכשיר.
שיטת הפשטת חומרה (HAL)
HAL היא שכבת הפשטה עם ממשק סטנדרטי שספקי חומרה יכולים להטמיע. שכבות HAL מאפשרות ל-Android להיות אגנוסטיות לגבי יישומי מנהלי התקנים ברמה נמוכה יותר. שימוש ב-HAL מאפשר להטמיע פונקציונליות בלי להשפיע על המערכת ברמה גבוהה יותר או לשנות אותה. מידע נוסף זמין בסקירה הכללית על HAL.
ספריות ודמונים מקוריים

השדים המקוריים בשכבה הזו כוללים את init, healthd, logd ו-storaged. הדמונים האלה יוצרים אינטראקציה ישירה עם הליבה או עם ממשקים אחרים, והם לא תלויים בהטמעה של HAL שמבוססת על מרחב משתמש.

ספריות מקוריות בשכבה הזו כוללות את libc, liblog, libutils, libbinder ו-libselinux. ספריות מקוריות אלה מקיימות אינטראקציה ישירה עם ליבת המערכת או עם ממשקים אחרים, והן לא תלויות בהטמעה של HAL שמבוססת על מרחב משתמש.

Kernel

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

מה השלב הבא?

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