A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release en lugar de aosp-main para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Cómo establecer valores de marcas de lanzamiento de funciones
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
De forma predeterminada, todas las marcas de lanzamiento de funciones son READ_WRITE y están configuradas como DISABLED.
Antes de poder probar una función, debes anular el valor predeterminado que se usó en la compilación. Para ello, crea un archivo de valores de la marca correspondiente. En un archivo de valores de la marca, configura el estado (ENABLED o DISABLED) y el permiso (READ_WRITE o READ_ONLY) de una marca individual.
Una configuración de versión es un directorio que contiene todos los archivos de valores de la marca para una compilación específica de Android (con ciertas funciones inhabilitadas y habilitadas).
El AOSP se envía con algunas configuraciones de versiones, como trunk_staging.
Los directorios de configuraciones de versiones se encuentran en WORKING_DIRECTORY/build/release/aconfig/.
Cuando usas el comando lunch para elegir un destino, también defines la configuración de versión del destino.
Por ejemplo, lo siguiente es un destino de trunk_staging:
"Trunk staging" es una configuración de versión de desarrollo porque Google la utiliza para probar funciones antes del lanzamiento general. Esta configuración usa mayormente marcas READ_WRITE que te permiten probar el código con funciones inhabilitadas o habilitadas durante el tiempo de ejecución.
En el lanzamiento general, usa una configuración de versión de lanzamiento. Una configuración de versión de lanzamiento usa mayormente marcas READ_ONLY y refleja todo el código habilitado para esa versión.
Cómo agregar una marca a la configuración de versión trunk_staging
Para probar una marca nueva, agrégala a la configuración de versióntrunk_staging de esta manera:
Navega a WORKING_DIRECTORY/build/release/aconfig/trunk_staging/.
En el directorio, crea un archivo de valores de la marca que combine el nombre utilizado en el archivo de declaración de la marca (.aconfig), como my_static_flag, que se muestra en Cómo declarar una marca de aconfig para Java, con _flag_values.textproto. Así, el nombre del archivo es my_static_flag_flag_values.textproto.
Edita el archivo y agrega un flag_value similar al siguiente:
package contiene el mismo nombre de paquete que se usó en la declaración.
name contiene el mismo nombre que se usó en la declaración.
state es ENABLED o DISABLED.
permission es READ_WRITE o READ_ONLY. En general, permission se configura en READ_ONLY para los archivos de valores de la marca que son parte de una configuración de versión.
Guarda el archivo y sal del editor.
En el mismo directorio que el del archivo de valores de la marca, crea un archivo de compilación llamado Android.bp. Este archivo se utiliza para incluir el archivo de valores de la marca en la compilación.
En el archivo Android.bp, crea una sección aconfig_values similar a la siguiente:
name es el nombre único del módulo de compilación de Soong. Google usa la convención de aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
Ten en cuenta que PATH_TO_RELEASE_CONFIG_DIR es build/release.
package contiene el mismo nombre de paquete que se usó en la declaración.
srcs es una lista de todos tus archivos de valores de la marca.
Guarda el archivo y sal del editor.
Navega al directorio arriba del actual (cd ..).
Edita el archivo Android.bp. Este archivo de compilación contiene una lista de todos los nombres (name) asociados a cada archivo de valores de la marca. Agrega a esa lista el nombre que usaste en el archivo de compilación anterior (paso 8).
Compila Android y ejecuta tu código nuevo para asegurarte de que esté habilitado de acuerdo con la configuración en el archivo de valores de la marca.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-03-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]