По умолчанию все флаги запуска функций имеют READ_WRITE
и установлены в DISABLED
. Прежде чем вы сможете протестировать функцию, вы должны переопределить значение по умолчанию, используемое в сборке, создав для него файл значений флага . В файле значений флагов вы устанавливаете состояние отдельного флага ( ENABLED
или DISABLED
) и разрешение ( READ_WRITE
или READ_ONLY
).
Конфигурация выпуска - это каталог, который содержит все файлы значений флага для определенной сборки Android (с определенными функциями и отключенными).
AOSP поставляется с несколькими конфигурациями выпуска, такими как trunk_staging
. Каталоги конфигурации выпуска находятся в разделе WORKING_DIRECTORY /build/release/aconfig/
.
Когда вы используете команду lunch
для выбора цели , вы также устанавливаете конфигурацию выпуска для цели. Например, следующее является целью trunk_staging
:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Промежуточный выпуск — это конфигурация разрабатываемой версии , поскольку Google использует ее для тестирования функций перед общим выпуском. В этой конфигурации в основном используются флаги READ_WRITE
, которые позволяют тестировать код с включенными или отключенными функциями во время выполнения.
В общем выпуске используйте конфигурацию выпуска . A release release configuration mostly uses READ_ONLY
flags and reflects all of the code enabled for that release.
Добавьте флаг в конфигурацию выпуска Trunk_staging.
Чтобы протестировать новый флаг, добавьте его в конфигурацию выпуска trunk_staging
следующим образом:
- Перейдите в
WORKING_DIRECTORY /build/release/aconfig/trunk_staging/
- Создайте каталог с тем же именем пакета, что и ваш флаг, такой как
com.example.android.aconfig.demo.flags
показанные в Declare Aconfig Flag для Java . - Перейдите в новый каталог.
- В каталоге создайте файл значений флагов, который объединяет имя, используемое в файле объявления флага (
.aconfig
), например,my_static_flag
показанный в Declie Aconfig Flag для 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
.
-
Сохраните файл и выйдите из редактора.
В том же каталоге, где находится файл значений флагов, создайте файл сборки с именем
Android.bp
. Этот файл используется для включения файла значений флагов в сборку.В файле
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
— уникальное имя модуля сборки 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 и запустите новый код, чтобы убедиться, что он включен согласно настройке в файле значений флагов.