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

כברירת מחדל, כל הדגלים להשקת תכונות הם 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.example.android.aconfig.demo.flags-all",
      package: "com.example.android.aconfig.demo.flags",
      srcs: [
        "*_flag_values.textproto",
      ]
    }
    

    איפה:

    • name הוא השם הייחודי של מודול ה-build ב-Soong. ‫Google משתמשת במוסכמה aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG_NAME-package.name-all. השם הזה צריך להיות זהה לשם שנוצר אוטומטית על ידי Soong על סמך הצהרת aconfig_value_set בקובץ Android.bp של ספריית האב. שימו לב: הערך של PATH_TO_RELEASE_CONFIG_DIR הוא build_release.
    • package מכיל את אותו שם חבילה שמופיע בהצהרה.
    • srcs היא רשימה של כל הקבצים עם ערכי הדגלים.
  9. שומרים את הקובץ ויוצאים מהעורך.

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

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