כברירת מחדל, כל הדגלים להשקת תכונות הם 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.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היא רשימה של כל הקבצים עם ערכי הדגלים.
-
שומרים את הקובץ ויוצאים מהעורך.
מעבר לספרייה שמעל הספרייה הנוכחית (
cd ..)מבצעים build של Android ומריצים את הקוד החדש כדי לוודא שהוא מופעל בהתאם להגדרה בקובץ הערכים של הסימון.