קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כברירת מחדל, כל הדגלים להשקת תכונות הם READ_WRITE ומוגדרים ל-DISABLED.
כדי לבדוק תכונה, צריך לשנות את ערך ברירת המחדל שמשמש ב-build על ידי יצירת קובץ ערכי דגל לדגל. בקובץ של ערכי הדגלים, מגדירים את המצב (ENABLED או DISABLED) וההרשאה (READ_WRITE או READ_ONLY) של דגל ספציפי.
הגדרת גרסה היא ספרייה שמכילה את כל קובצי ערכי הדגלים של build ספציפי של Android (עם תכונות מסוימות שפועלות ותכונות מסוימות מושבתות).
AOSP מגיע עם כמה הגדרות של גרסאות, כמו trunk_staging.
ספריות ההגדרות של הגרסה נמצאות בתיקייה WORKING_DIRECTORY/build/release/aconfig/.
כשמשתמשים בפקודה lunch כדי לבחור יעד, מגדירים גם את הגדרות הגרסה ליעד.
לדוגמה, היעד הבא הוא יעד trunk_staging:
תצורת 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.
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 ומריצים את הקוד החדש כדי לוודא שהוא מופעל בהתאם להגדרה בקובץ ערכי הדגלים.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Set feature launch flag values\n\nBy default, all feature launch flags are `READ_WRITE` and set to `DISABLED`.\nBefore you can test a feature, you must override the default value used in the\nbuild by creating a *flag values file* for the flag. In a flag values file,\nyou set a individual flag's state (`ENABLED` or `DISABLED`) and permission\n(`READ_WRITE` or `READ_ONLY`).\n\nA *release configuration* is a directory that contains all of the flag values\nfiles for a specific build of Android (with certain features enabled and\ndisabled).\n\nAOSP ships with a few release configurations, such as `trunk_staging`.\nRelease configuration directories are found under\n\u003cvar translate=\"no\"\u003eWORKING_DIRECTORY\u003c/var\u003e`/build/release/aconfig/`.\n| **Note:** This page shows you how to add a flag to an existing release configuration as a means of teaching how release configurations work. The release configurations included in AOSP are defined by Google. Google doesn't accept contributions to update or change a configuration's feature release flags. Instead, you can define your own custom release configurations including default flag values in your forks of AOSP. For more information on release configurations, see [Set feature launch flag values](/docs/setup/build/feature-flagging/set-values).\n\nWhen you use the `lunch` command to\n[choose a target](/docs/setup/build/building#choose-a-target), you're\nalso setting the release configuration for the target.\nFor example, the\nfollowing is a `trunk_staging` target: \n\n lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug\n\nTrunk staging is a *development release configuration* because\nGoogle uses it to test features before general release. This configuration\nuses\nmostly `READ_WRITE` flags that let you test your code with features enabled or\ndisabled at runtime.\n\nAt general release, use a *release release configuration* . A release\nrelease configuration mostly uses `READ_ONLY` flags and reflects all of the code\nenabled for that release.\n\nAdd a flag to the trunk_staging release configuration\n-----------------------------------------------------\n\nTo test a new flag, add it to the `trunk_staging` release configuration as\nfollows:\n\n1. Navigate to \u003cvar translate=\"no\"\u003eWORKING_DIRECTORY\u003c/var\u003e`/build/release/aconfig/trunk_staging/`\n2. Create a directory with the same package name as your flag, such as `com.example.android.aconfig.demo.flags` shown in [Declare an aconfig flag for Java](/docs/setup/build/feature-flagging/declare-flag).\n3. Navigate to the new directory.\n4. In the directory, create a flag values file that combines the name used in the flag declaration (`.aconfig`) file, such as `my_static_flag` shown in [Declare an aconfig flag for Java](/docs/setup/build/feature-flagging/declare-flag) with `_flag_values.textproto`. The resulting filename is `my_static_flag_flag_values.textproto`.\n5. Edit the file and add a `flag_value` similar to the following:\n\n flag_value {\n package: \"com.example.android.aconfig.demo.flags\"\n name: \"my_static_flag\"\n state: DISABLED\n Permission: READ_WRITE\n }\n\n Where:\n - `package` contains the same package name used in the declaration.\n - `name` contains the same name used in the declaration.\n - `state` is either `ENABLED` or `DISABLED`.\n - `permission` is either `READ_WRITE` or `READ_ONLY`. Generally, the `permission` is set to `READ_ONLY` for flag values files that are part of a release configuration.\n6. Save the file and exit your editor.\n\n7. In the same directory as the flag values file, create a build file called\n `Android.bp`. This file is used to include the flag values file in the build.\n\n8. In the `Android.bp` file, create a `aconfig_values` section similar to:\n\n aconfig_values {\n name: \"aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all\",\n package: \"com.android.aconfig.test\",\n srcs: [\n \"*_flag_values.textproto\",\n ]\n }\n\n Where:\n - `name` is the unique name for the Soong build module. Google uses the convention of `aconfig-values-platform_`\u003cvar translate=\"no\"\u003ePATH_TO_RELEASE_CONFIG_DIR\u003c/var\u003e`-`\u003cvar translate=\"no\"\u003eCONFIG-NAME\u003c/var\u003e`-`\u003cvar translate=\"no\"\u003epackage.name\u003c/var\u003e`-all`. Note that \u003cvar translate=\"no\"\u003ePATH_TO_RELEASE_CONFIG_DIR\u003c/var\u003e is `build/release`.\n - `package` contains the same package name used in the declaration.\n - `srcs` is a list of all of your flag values files.\n9. Save the file and exit your editor.\n\n10. Navigate to the directory above the current directory (`cd ..`)\n\n11. Edit the `Android.bp` file. This build file contains a list of the names\n (`name`) associated with each flag values file. Add the name you used in the\n previous build file (step 8) to this list.\n\n12. Build Android, and run your new code to ensure that it's enabled per the\n setting in the flag values file."]]