A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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:
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), como my_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:
package contém o mesmo nome de pacote usado na declaração.
name contém o mesmo nome usado na declaração.
state é ENABLED ou DISABLED.
permission é READ_WRITE ou READ_ONLY. No geral, a
permission está definida como READ_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ção aconfig_values semelhante a esta:
name é o nome exclusivo do módulo de build Soong. O Google usa
aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
como convenção.
Observe que PATH_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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-03-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-03-26 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."]]