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,
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 geral, use uma configuração de lançamento. Uma configuração
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:
- Navegue 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 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_valuesemelhante a este:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }Em que:
packagecontém o mesmo nome de pacote usado na declaração.namecontém o mesmo nome usado na declaração.stateéENABLEDouDISABLED.permissionéREAD_WRITEouREAD_ONLY. No geral, apermissionestá definida comoREAD_ONLYpara 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_valuessemelhante 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-allcomo convenção. Observe quePATH_TO_RELEASE_CONFIG_DIRébuild/release.packageconté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.