פרויקט הקוד הפתוח של אנדרואיד (AOSP) שומר על ערימת תוכנה מלאה שתועבר על ידי יצרני OEM ומיישמי מכשירים אחרים ותפעל על החומרה שלהם. כדי לשמור על האיכות של אנדרואיד, גוגל תרמה מהנדסים במשרה מלאה, מנהלי מוצר, מעצבי ממשקי משתמש, בודקי אבטחת איכות וכל שאר התפקידים הנדרשים כדי להוציא מכשירים מודרניים לשוק.
בהתאם לכך, אנו שומרים על מספר קווי קוד כדי להפריד בבירור בין הגרסה היציבה הנוכחית של אנדרואיד לבין עבודה ניסיונית לא יציבה. אנו מגלגלים את הניהול והתחזוקה בקוד פתוח של קווי הקוד של אנדרואיד למחזור פיתוח המוצר הגדול יותר.
ניהול קוד AOSP
התרשים שלהלן מתאר את המושגים מאחורי ניהול קוד AOSP ומהדורות.
- בכל רגע נתון, יש מהדורה עדכנית עדכנית של פלטפורמת אנדרואיד. זה בדרך כלל לובש צורה של ענף בעץ.
- בוני מכשירים ותורמים עובדים עם המהדורה האחרונה הנוכחית, מתקנים באגים, משיקים מכשירים חדשים, מתנסים בתכונות חדשות וכו'.
- במקביל, גוגל עובדת פנימית על הגרסה הבאה של פלטפורמת האנדרואיד והמסגרת לפי צרכי המוצר ומטרותיו. אנו מפתחים את הגרסה הבאה של אנדרואיד על ידי עבודה עם שותף מכשיר על מכשיר דגל שהמפרט שלו נבחר כדי לדחוף את אנדרואיד לכיוון שאנו מאמינים שהוא צריך ללכת.
- כאשר הגרסה n+1 מוכנה, היא מתפרסמת בעץ המקור הציבורי והופכת למהדורה האחרונה החדשה.
תנאים ואזהרות
- מהדורה מתאימה לגרסה רשמית של פלטפורמת אנדרואיד, כגון 1.5 או 8.1. מהדורה של הפלטפורמה מתאימה לגרסה בשדה
SdkVersion
של קבציAndroidManifest.xml
ומוגדרת בתוךframeworks/base/api
בעץ המקור. - פרויקט במעלה הזרם הוא פרויקט קוד פתוח שממנו מחסנית האנדרואיד שואבת קוד. בנוסף לפרויקטים כגון ליבת לינוקס ו-WebKit, אנו ממשיכים להעביר כמה פרויקטים חצי אוטונומיים של אנדרואיד כגון ART, כלי Android SDK ו-Bionic לעבודה כפרויקטים במעלה הזרם. בדרך כלל, פרויקטים אלה מפותחים לחלוטין בעץ הציבורי. עבור כמה פרויקטים במעלה הזרם, מפתחים תורמים ישירות לפרויקט במעלה הזרם. לפרטים, ראה פרויקטים במעלה הזרם . בשני המקרים, תמונות מצב נמשכות מעת לעת לשחרורים.
- בכל עת, קו קוד שחרור (שעשוי להכיל יותר מענף אחד ב-git) נחשב לקוד המקור הקנוני היחיד עבור גרסת פלטפורמת אנדרואיד נתונה. יצרני OEM וקבוצות אחרות בונות התקנים צריכים למשוך רק מענף שחרור.
- קווי קוד ניסויים נקבעים כדי ללכוד שינויים מהקהילה, כך שניתן יהיה לחזור עליהם עם עין לעבר יציבות.
- שינויים שמתגלים יציבים נמשכים בסופו של דבר לענף שחרור. זה חל רק על תיקוני באגים, שיפורים באפליקציות ושינויים אחרים שאינם משפיעים על ממשקי ה-API של הפלטפורמה.
- שינויים נמשכים לענפי שחרור מפרויקטים במעלה הזרם (כולל פרויקטי אנדרואיד במעלה הזרם) לפי הצורך.
- הגרסה n+1 (הגרסה העיקרית הבאה של ממשקי API של המסגרת והפלטפורמה) פותחה על ידי Google באופן פנימי. לפרטים, ראה קווי קוד פרטיים .
- שינויים נמשכים מענפים במעלה הזרם, שחרור וניסויים אל הסניף הפרטי של Google לפי הצורך.
- כאשר ממשקי ה-API של הפלטפורמה עבור הגרסה הבאה מתייצבים ונבדקים במלואם, גוגל חותכת מהדורה של גרסת הפלטפורמה הבאה (באופן ספציפי,
SdkVersion
חדשה). זה מתאים לכך שקו הקוד הפנימי נעשה לענף פרסום ציבורי ולקו הקוד החדש של הפלטפורמה הנוכחית. - כאשר נחתכת גרסת פלטפורמה חדשה, נוצר קו קוד ניסיוני תואם בו-זמנית.
קווי קוד פרטיים
אסטרטגיית ניהול המקור לעיל כוללת קו קוד שגוגל שומרת על פרטיות כדי למקד את תשומת הלב בגרסה הציבורית הנוכחית של אנדרואיד.
יצרני OEM ובוני מכשירים אחרים רוצים כמובן לשלוח מכשירים עם הגרסה העדכנית ביותר של אנדרואיד. באופן דומה, מפתחי אפליקציות לא רוצים להתמודד עם יותר גרסאות פלטפורמה מהנדרש. בינתיים, גוגל שומרת על האחריות לכיוון האסטרטגי של אנדרואיד כפלטפורמה וכמוצר. הגישה שלנו מתמקדת במספר קטן של מכשירי דגל כדי להניע תכונות תוך אבטחת הגנות על קניין רוחני הקשור לאנדרואיד.
כתוצאה מכך, ל-Google יש לעתים קרובות מידע סודי מצדדים שלישיים ועליה להימנע מחשיפת תכונות רגישות עד לאבטחת ההגנות המתאימות. בנוסף, ישנם סיכונים אמיתיים לפלטפורמה אם קיימות יותר מדי גרסאות פלטפורמה בו-זמנית. מסיבות אלו, בנינו את פרויקט הקוד הפתוח (כולל תרומות של צד שלישי) כך שיתמקד בגרסה היציבה הפומבית הנוכחית של אנדרואיד. פיתוח עמוק בגרסה הבאה של הפלטפורמה מתרחש באופן פרטי עד שהיא מוכנה להפוך לגרסה רשמית.
אנו מכירים בכך שתורמים רבים אינם מסכימים עם גישה זו ואנו מכבדים את נקודות המבט שלהם. עם זאת, זו הגישה שאנו מרגישים שהיא הטובה ביותר וזו שבחרנו ליישם עבור אנדרואיד.