פרויקט Android Open Source Project (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 מכיל את השכבות הבאות:
איור 1. ארכיטקטורת סטאק התוכנות של AOSP.
בהמשך מפורטות הגדרות של המונחים שמופיעים באיור 1:
- אפליקציה ל-Android
- אפליקציה שנוצרה אך ורק באמצעות Android API. חנות Google Play היא מקום נפוץ לחיפוש ולהורדה של אפליקציות ל-Android, אבל יש חלופות רבות אחרות. במקרים מסוימים, יצרן המכשיר עשוי להתקין מראש אפליקציית Android כדי לתמוך בפונקציות הליבה של המכשיר. אם אתם מעוניינים לפתח אפליקציות ל-Android, תוכלו להיכנס לאתר developers.android.com.
- אפליקציה בעלת הרשאות
- אפליקציה שנוצרה באמצעות שילוב של ממשקי ה-API של Android ושל המערכת. האפליקציות האלה צריכות להיות מותקנות מראש במכשיר כאפליקציות בעלות הרשאות.
- אפליקציה של יצרן המכשיר
- אפליקציה שנוצרה באמצעות שילוב של Android API, System API וגישה ישירה להטמעת Android framework. מאחר שיצרן המכשיר עשוי לגשת ישירות לממשקי API לא יציבים במסגרת Android, האפליקציות האלה חייבות להיות מותקנות מראש במכשיר, וניתן לעדכן אותן רק כשתוכנת המערכת של המכשיר מתעדכנת.
- System API
- ה-System API מייצג ממשקי API של Android שזמינים רק לשותפים וליצרני ציוד מקורי (OEM) שאפשר לכלול בחבילה של אפליקציות. ממשקי ה-API האלה מסומנים בקוד המקור בתור @SystemApi.
- Android API
- Android API הוא ה-API שזמין באופן ציבורי למפתחי אפליקציות ל-Android של צד שלישי. למידע על Android API, אפשר לעיין בהפניית Android API.
- Android framework
- קבוצה של כיתות, ממשקים וקודים אחרים של Java שעבר הידור מראש, ועליו נבנות האפליקציות. חלקים מהמסגרת גלויים לכולם באמצעות Android API. חלקים אחרים של המסגרת זמינים רק ליצרני ציוד מקורי באמצעות ממשקי ה-API של המערכת. קוד של מסגרת Android פועל בתוך תהליך של אפליקציה.
- שירותי מערכת
- שירותי המערכת הם רכיבים מודולריים וממוקדים כמו
system_server
, SurfaceFlinger ו-MediaService. הפונקציונליות שחשופה על ידי Android framework API מתקשרת עם שירותי המערכת כדי לגשת לחומרה הבסיסית. - זמן ריצה ב-Android (ART)
- סביבה של זמן ריצה של Java שסופקה על ידי AOSP. ART מבצעת את התרגום של קוד הבייט של האפליקציה להוראות ספציפיות למעבד, שמבוצעות על ידי סביבת זמן הריצה של המכשיר.
- שיטת הפשטת חומרה (HAL)
- HAL הוא שכבת הפשטה עם ממשק סטנדרטי שספקי החומרה יכולים להטמיע. ממשקי HAL מאפשרים ל-Android להיות ניטרלי לגבי הטמעות של דרייברים ברמה נמוכה יותר. השימוש ב-HAL מאפשר להטמיע פונקציונליות בלי להשפיע על המערכת ברמה הגבוהה יותר או לשנות אותה. למידע נוסף, ראו סקירה כללית בנושא HAL.
- ספריות ודימונים מקומיים
הדימונים (daemons) המקומיים בשכבה הזו הם
init
,healthd
,logd
ו-storaged
. הדימונים האלה יוצרים אינטראקציה ישירה עם הליבה או עם ממשקים אחרים, ולא תלויים בהטמעת HAL שמבוססת על מרחב המשתמש.ספריות מקוריות בשכבה הזו כוללות את
libc
,liblog
,libutils
,libbinder
ו-libselinux
. ספריות ה-Native האלה מקיימות אינטראקציה ישירות עם הליבה או עם ממשקים אחרים, ולא תלויות בהטמעת HAL שמבוססת על מרחב המשתמשים.- Kernel
הליבה היא החלק המרכזי בכל מערכת הפעלה, והיא מתקשרת עם החומרה הבסיסית במכשיר. כשהדבר אפשרי, ליבה של AOSP מחולקת למודולים שאינם תלויים בחומרה ולמודולים ספציפיים לספק. לקבלת תיאור, כולל ההגדרות של רכיבי הליבה של AOSP, קראו את הסקירה הכללית על הליבה.
מה השלב הבא?
- אם זו הפעם הראשונה שאתם משתמשים ב-AOSP ואתם רוצים להתחיל לפתח, כדאי לעיין בקטע 'תחילת העבודה'.
- כדי לקבל מידע נוסף על שכבה ספציפית של AOSP, לוחצים על שם הקטע בתפריט הניווט הימני ומתחילים עם הסקירה הכללית של הקטע הזה.