Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release вместо aosp-main для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
По умолчанию все флаги запуска функций имеют READ_WRITE и установлены на DISABLED . Перед тем, как вы сможете протестировать функцию, вы должны переопределить значение по умолчанию, используемое в сборке, создав файл значений флагов для флага. В файле значений флагов вы устанавливаете состояние отдельного флага ( ENABLED или DISABLED ) и разрешение ( READ_WRITE или READ_ONLY ).
Конфигурация выпуска — это каталог, содержащий все файлы значений флагов для определенной сборки 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 .
Отредактируйте файл и добавьте flag_value аналогичный следующему:
package содержит то же имя пакета, что и в объявлении.
name содержит то же имя, что и в объявлении.
state может быть ENABLED или DISABLED .
permission либо READ_WRITE , либо READ_ONLY . Обычно permission устанавливается на READ_ONLY для файлов значений флагов, которые являются частью конфигурации выпуска.
Сохраните файл и выйдите из редактора.
В том же каталоге, где находится файл значений флагов, создайте файл сборки с именем Android.bp . Этот файл используется для включения файла значений флагов в сборку.
В файле Android.bp создайте раздел aconfig_values следующего вида:
name — уникальное имя для модуля сборки 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 . Этот файл сборки содержит список имен ( name ), связанных с каждым файлом значений флагов. Добавьте в этот список имя, которое вы использовали в предыдущем файле сборки (шаг 8).
Соберите Android и запустите новый код, чтобы убедиться, что он включен в соответствии с настройками в файле значений флагов.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 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-29 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."]]