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

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

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

ניהול קוד AOSP

התרשים שלהלן מתאר את המושגים העומדים מאחורי ניהול קוד AOSP ומהדורותיו.

תרשים קוד
איור 1. קוד AOSP ומשחרר
  1. בכל רגע נתון קיימת הגרסה האחרונה של פלטפורמת Android. זה בדרך כלל לובש צורה של ענף בעץ.
  2. בוני מכשירים ותורמים עובדים עם המהדורה האחרונה הנוכחית, מתקנים באגים, משיקים מכשירים חדשים, מתנסים בתכונות חדשות וכן הלאה.
  3. במקביל, גוגל עובדת באופן פנימי על הגרסה הבאה של פלטפורמת האנדרואיד ומסגרת על פי צרכי המוצר ויעדיו. אנו מפתחים את הגרסה הבאה של אנדרואיד על ידי עבודה עם שותף למכשיר על מכשיר דגל שמפרטו נבחר לדחוף את אנדרואיד לכיוון שאנו מאמינים שהוא צריך ללכת.
  4. כאשר הגרסה n + 1 מוכנה, היא מתפרסמת בעץ המקור הציבורי והופכת למהדורה האחרונה החדשה.

תנאים וסייגים

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

קווי קוד פרטיים

אסטרטגיית ניהול המקור לעיל כוללת קו קוד שגוגל שומרת על פרטיות כדי למקד את תשומת הלב בגרסה הציבורית הנוכחית של Android.

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

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

אנו מכירים בכך שתורמים רבים אינם מסכימים עם גישה זו ואנו מכבדים את עמדותיהם. עם זאת, זו הגישה שלדעתנו היא הטובה ביותר והיא זו שבחרנו ליישם עבור Android.