כברירת מחדל, כל דגלי השקת התכונות הם 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
- ניווט אל
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
- יוצרים ספרייה עם אותו שם חבילה כמו הדגל, כמו
com.example.android.aconfig.demo.flags
שמוצג במאמר הצהרה על דגל aconfig ל-Java. - מנווטים לספרייה החדשה.
- בתיקייה, יוצרים קובץ עם ערכי הדגל שמשלב את השם שבו השתמשתם בקובץ ההצהרה על הדגל (
.aconfig
), כמוmy_static_flag
שמוצג במאמר הצהרה על דגל aconfig ל-Java עם_flag_values.textproto
. שם הקובץ שיתקבל הואmy_static_flag_flag_values.textproto
. עורכים את הקובץ ומוסיפים
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
בקבצים של ערכי דגלים שמהווים חלק מהגדרות של גרסת הפצה.
-
שומרים את הקובץ ויוצאים מהעורך.
באותה תיקייה שבה נמצא קובץ ערכי הדגלים, יוצרים קובץ build בשם
Android.bp
. הקובץ הזה משמש להכללת קובץ ערכי הדגלים ב-build.בקובץ
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
היא רשימה של כל הקבצים עם ערכי הדגלים.
-
שומרים את הקובץ ויוצאים מהעורך.
מעבר לספרייה שמעל הספרייה הנוכחית (
cd ..
)עורכים את קובץ
Android.bp
. קובץ ה-build הזה מכיל רשימה של השמות (name
) שמשויכים לכל קובץ ערכי דגלים. מוסיפים לרשימה הזו את השם שבו השתמשתם בקובץ ה-build הקודם (שלב 8).יוצרים את Android ומריצים את הקוד החדש כדי לוודא שהוא מופעל בהתאם להגדרה בקובץ ערכי הדגל.