À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Définir les valeurs des indicateurs de lancement de fonctionnalités
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Par défaut, tous les indicateurs de lancement de fonctionnalités sont READ_WRITE et définis sur DISABLED.
Avant de pouvoir tester une fonctionnalité, vous devez remplacer la valeur par défaut utilisée dans la compilation en créant un fichier de valeurs d'indicateur pour l'indicateur. Dans un fichier de valeurs d'indicateur, vous définissez l'état (ENABLED ou DISABLED) et l'autorisation (READ_WRITE ou READ_ONLY) d'un indicateur individuel.
Une configuration de version est un répertoire qui contient tous les fichiers de valeurs d'indicateur pour une version spécifique d'Android (avec certaines fonctionnalités activées et désactivées).
AOSP est fourni avec quelques configurations de version, telles que trunk_staging.
Les répertoires de configuration de version se trouvent sous WORKING_DIRECTORY/build/release/aconfig/.
Lorsque vous utilisez la commande lunch pour choisir une cible, vous définissez également la configuration de publication pour la cible.
Par exemple, la cible trunk_staging suivante:
Le pré-déploiement du trunk est une configuration de version de développement, car Google l'utilise pour tester les fonctionnalités avant leur publication générale. Cette configuration utilise principalement des indicateurs READ_WRITE qui vous permettent de tester votre code avec des fonctionnalités activées ou désactivées au moment de l'exécution.
Pour la version générale, utilisez une configuration de version. Une configuration de version utilise principalement des indicateurs READ_ONLY et reflète tout le code activé pour cette version.
Ajouter un indicateur à la configuration de la version trunk_staging
Pour tester un nouvel indicateur, ajoutez-le à la configuration de version trunk_staging comme suit:
Itinéraire vers WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
Créez un répertoire portant le même nom de package que votre indicateur, tel que com.example.android.aconfig.demo.flags, comme indiqué dans la section Déclarer un indicateur aconfig pour Java.
Accédez au nouveau répertoire.
Dans le répertoire, créez un fichier de valeurs d'indicateur qui combine le nom utilisé dans le fichier de déclaration d'indicateur (.aconfig), tel que my_static_flag illustré dans Déclarer un indicateur aconfig pour Java avec _flag_values.textproto. Le nom de fichier obtenu est my_static_flag_flag_values.textproto.
Modifiez le fichier et ajoutez un flag_value semblable à celui-ci:
package contient le même nom de package que celui utilisé dans la déclaration.
name contient le même nom que celui utilisé dans la déclaration.
state correspond à ENABLED ou DISABLED.
permission correspond à READ_WRITE ou READ_ONLY. En règle générale, permission est défini sur READ_ONLY pour les fichiers de valeurs d'indicateurs qui font partie d'une configuration de version.
Enregistrez le fichier et quittez votre éditeur.
Dans le même répertoire que le fichier de valeurs d'indicateur, créez un fichier de compilation appelé Android.bp. Ce fichier permet d'inclure le fichier de valeurs d'indicateurs dans la compilation.
Dans le fichier Android.bp, créez une section aconfig_values semblable à celle-ci:
name est le nom unique du module de compilation Soong. Google utilise la convention aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
Notez que PATH_TO_RELEASE_CONFIG_DIR est build/release.
package contient le même nom de package que celui utilisé dans la déclaration.
srcs est une liste de tous vos fichiers de valeurs d'indicateur.
Enregistrez le fichier et quittez votre éditeur.
Accédez au répertoire situé au-dessus du répertoire actuel (cd ..).
Modifiez le fichier Android.bp. Ce fichier de compilation contient une liste des noms (name) associés à chaque fichier de valeurs d'indicateur. Ajoutez le nom que vous avez utilisé dans le fichier de compilation précédent (étape 8) à cette liste.
Compilez Android et exécutez votre nouveau code pour vous assurer qu'il est activé conformément au paramètre défini dans le fichier de valeurs d'indicateur.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (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."]]