Por padrão, todas as flags de lançamento de recursos são READ_WRITE
e estão definidas como DISABLED
.
Antes de testar um recurso, você precisa substituir o valor padrão usado no
build criando um arquivo de valores de flag. Em um arquivo de valores de flag,
você define um estado (ENABLED
ou DISABLED
) e uma permissão
(READ_WRITE
ou READ_ONLY
) individuais.
Uma configuração de lançamento é um diretório que contém todos os arquivos de valores de flag de um build específico do Android (com determinados recursos ativados e desativados).
O AOSP acompanha algumas configurações de lançamento, como trunk_staging
.
Os diretórios de configuração de lançamento ficam em
WORKING_DIRECTORY/build/release/aconfig/
.
Quando você usa o comando lunch
para
escolher um destino, você
define também a configuração de lançamento.
Por exemplo,
esta configuração é um destino trunk_staging
:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Trunk staging é uma configuração de lançamento de desenvolvimento, já que
o Google a usa para testar recursos antes do lançamento geral. Essa configuração
usa
principalmente flags READ_WRITE
que permitem testar seu código com recursos ativados ou
desativados durante a execução.
No lançamento geral, use uma configuração de lançamento de lançamento. Uma configuração
de lançamento de lançamento usa principalmente flags READ_ONLY
e reflete todo o código
ativado para o lançamento em questão.
Adicionar uma flag à configuração de lançamento trunk_staging
Para testar uma nova flag, siga estas etapas para adicioná-la à configuração de lançamento
trunk_staging
:
- Navegar até
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
- Crie um diretório com o mesmo nome de pacote que sua flag, como
com.example.android.aconfig.demo.flags
, conforme mostrado em Declarar uma flag aconfig em Java. - Navegue até o novo diretório.
- No diretório, crie um arquivo de valores da flag que combine o nome usado na
declaração da flag (
.aconfig
), comomy_static_flag
, conforme mostrado em Declarar uma flag aconfig em Java com_flag_values.textproto
. O nome de arquivo resultante serámy_static_flag_flag_values.textproto
. Edite o arquivo e adicione um
flag_value
semelhante a este:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
Em que:
package
contém o mesmo nome de pacote usado na declaração.name
contém o mesmo nome usado na declaração.state
éENABLED
ouDISABLED
.permission
éREAD_WRITE
ouREAD_ONLY
. No geral, apermission
está definida comoREAD_ONLY
para arquivos de valores da flag que fazem parte de uma configuração de lançamento.
Salve o arquivo e saia do editor.
No mesmo diretório que o arquivo de valores de flag, crie um arquivo de build chamado
Android.bp
. Esse arquivo é usado para incluir o arquivo de valores de flag no build.No arquivo
Android.bp
, crie uma seçãoaconfig_values
semelhante a esta:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
Em que:
name
é o nome exclusivo do módulo de build Soong. O Google usaaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
como convenção. Observe quePATH_TO_RELEASE_CONFIG_DIR
ébuild/release
.package
contém o mesmo nome de pacote usado na declaração.srcs
é uma lista de todos os seus arquivos de valores da flag.
Salve o arquivo e saia do editor.
Navegue até o diretório acima do atual (
cd ..
).Edite o arquivo
Android.bp
. Esse arquivo de build contém uma lista dos nomes (name
) associados a cada arquivo de valores de flag. Adicione o nome que você usou no arquivo de build anterior (etapa 8) nessa lista.Crie o Android e execute seu novo código para garantir que ele esteja ativado de acordo com a configuração no arquivo de valores de flag.