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

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

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

ארכיטקטורת AOSP

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

ארכיטקטורת מחסנית תוכנת AOSP.

איור 1. ארכיטקטורת מחסנית תוכנת AOSP.

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

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

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

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

גַרעִין

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

מה הלאה?

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