הגדרת ערכי דגלים להשקת תכונות

כברירת מחדל, כל דגלי השקת התכונות הם READ_WRITE ומוגדרים לערך DISABLED. כדי לבדוק תכונה, צריך ליצור קובץ ערכי דגל בשביל הדגל כדי לשנות את ערך ברירת המחדל שמשמש ב-build. בקובץ ערכי הדגלים, מגדירים את המצב של כל דגל (ENABLED או DISABLED) ואת ההרשאה (READ_WRITE או READ_ONLY).

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

‫AOSP כולל כמה הגדרות מוצר, כמו trunk_staging. ספריות של הגדרות מוצר נמצאות בנתיב WORKING_DIRECTORY/build/release/aconfig/.

כשמשתמשים בפקודה lunch כדי לבחור יעד, מגדירים גם את הגדרת הגרסה של היעד. לדוגמה, יעד trunk_staging:

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

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

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

הוספת דגל להגדרת ההפצה של trunk_staging

כדי לבדוק דגל חדש, מוסיפים אותו להגדרת הגרסה באופן הבא:trunk_staging

  1. ניווט אל WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. יוצרים ספרייה עם אותו שם חבילה כמו הדגל, כמו com.example.android.aconfig.demo.flags שמוצג במאמר הצהרה על דגל aconfig ל-Java.
  3. מנווטים לספרייה החדשה.
  4. בתיקייה, יוצרים קובץ עם ערכי הדגל שמשלב את השם שבו השתמשתם בקובץ ההצהרה על הדגל (.aconfig), כמו my_static_flag שמוצג במאמר הצהרה על דגל aconfig ל-Java עם _flag_values.textproto. שם הקובץ שיתקבל הוא my_static_flag_flag_values.textproto.
  5. עורכים את הקובץ ומוסיפים flag_value שדומה לזה:

    flag_value {
      package: "com.example.android.aconfig.demo.flags"
      name: "my_static_flag"
      state: DISABLED
      Permission: READ_WRITE
    }
    

    איפה:

    • package מכיל את אותו שם חבילה שמשמש בהצהרה.
    • name מכיל את אותו שם שמופיע בהצהרה.
    • state הוא ENABLED או DISABLED.
    • permission הוא READ_WRITE או READ_ONLY. בדרך כלל, הערך של permission הוא READ_ONLY בקבצים של ערכי דגלים שמהווים חלק מהגדרות של גרסת הפצה.
  6. שומרים את הקובץ ויוצאים מהעורך.

  7. באותה תיקייה שבה נמצא קובץ ערכי הדגלים, יוצרים קובץ build בשם Android.bp. הקובץ הזה משמש להכללת קובץ ערכי הדגלים ב-build.

  8. בקובץ Android.bp, יוצרים קטע aconfig_values שדומה לזה:

    aconfig_values {
      name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all",
      package: "com.android.aconfig.test",
      srcs: [
        "*_flag_values.textproto",
      ]
    }
    

    איפה:

    • name הוא השם הייחודי של מודול ה-build של Soong. ‫Google משתמשת במוסכמה aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. שימו לב שהערך של PATH_TO_RELEASE_CONFIG_DIR הוא build/release.
    • package מכיל את אותו שם חבילה שמשמש בהצהרה.
    • srcs היא רשימה של כל הקבצים עם ערכי הדגלים.
  9. שומרים את הקובץ ויוצאים מהעורך.

  10. מעבר לספרייה שמעל הספרייה הנוכחית (cd ..)

  11. עורכים את קובץ Android.bp. קובץ ה-build הזה מכיל רשימה של השמות (name) שמשויכים לכל קובץ ערכי דגלים. מוסיפים לרשימה הזו את השם שבו השתמשתם בקובץ ה-build הקודם (שלב 8).

  12. יוצרים את Android ומריצים את הקוד החדש כדי לוודא שהוא מופעל בהתאם להגדרה בקובץ ערכי הדגל.