Ab dem 27. März 2025 empfehlen wir, android-latest-release anstelle von aosp-main zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Werte für das Flag zur Einführung von Funktionen festlegen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Standardmäßig sind alle Flags für die Einführung von Funktionen READ_WRITE und auf DISABLED festgelegt.
Bevor Sie eine Funktion testen können, müssen Sie den im Build verwendeten Standardwert überschreiben. Erstellen Sie dazu eine Datei mit Flag-Werten für das Flag. In einer Flag-Wertdatei legen Sie den Status (ENABLED oder DISABLED) und die Berechtigung (READ_WRITE oder READ_ONLY) einer einzelnen Kennzeichnung fest.
Eine Release-Konfiguration ist ein Verzeichnis, das alle Flag-Wertdateien für einen bestimmten Android-Build enthält, bei dem bestimmte Funktionen aktiviert und deaktiviert sind.
AOSP wird mit einigen Releasekonfigurationen wie trunk_staging ausgeliefert.
Die Verzeichnisse für die Releasekonfiguration finden Sie unter WORKING_DIRECTORY/build/release/aconfig/.
Wenn Sie mit dem Befehl lunch ein Ziel auswählen, legen Sie auch die Release-Konfiguration für das Ziel fest.
Ein Beispiel für ein trunk_staging-Ziel:
Das Trunk-Staging ist eine Konfiguration für Entwicklungsversionen, da Google damit Funktionen vor der allgemeinen Veröffentlichung testet. Bei dieser Konfiguration werden hauptsächlich READ_WRITE-Flags verwendet, mit denen Sie Ihren Code mit aktivierten oder deaktivierten Funktionen zur Laufzeit testen können.
Verwenden Sie für die allgemeine Verfügbarkeit eine Releasekonfiguration. In einer Release-Konfiguration werden hauptsächlich READ_ONLY-Flags verwendet. Sie enthält den gesamten Code, der für diesen Release aktiviert ist.
Fügen Sie der Releasekonfiguration „trunk_staging“ ein Flag hinzu.
Wenn Sie ein neues Flag testen möchten, fügen Sie es der trunk_staging-Releasekonfiguration so hinzu:
Zu WORKING_DIRECTORY/build/release/aconfig/trunk_staging/ navigieren
Erstellen Sie ein Verzeichnis mit demselben Paketnamen wie Ihr Flag, z. B. com.example.android.aconfig.demo.flags, wie in Aconfig-Flag für Java deklarieren gezeigt.
Rufen Sie das neue Verzeichnis auf.
Erstellen Sie im Verzeichnis eine Datei mit Flag-Werten, die den in der Flag-Deklarationsdatei (.aconfig) verwendeten Namen, z. B. my_static_flag aus Ein aconfig-Flag für Java deklarieren, mit _flag_values.textproto kombiniert. Der resultierende Dateiname lautet my_static_flag_flag_values.textproto.
Bearbeiten Sie die Datei und fügen Sie eine flag_value hinzu, die in etwa so aussieht:
package enthält denselben Paketnamen wie in der Deklaration.
name enthält denselben Namen wie in der Deklaration.
state ist entweder ENABLED oder DISABLED.
permission ist entweder READ_WRITE oder READ_ONLY. Im Allgemeinen ist das Flag permission für Flag-Wertdateien, die Teil einer Release-Konfiguration sind, auf READ_ONLY festgelegt.
Speichern Sie die Datei und beenden Sie den Editor.
Erstellen Sie im selben Verzeichnis wie die Datei mit den Flag-Werten eine Build-Datei namens Android.bp. Über diese Datei wird die Datei mit den Flag-Werten in den Build eingefügt.
Erstellen Sie in der Datei Android.bp einen Abschnitt aconfig_values, der in etwa so aussieht:
name ist der eindeutige Name für das Soong-Build-Modul. Google verwendet die Konvention von aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
PATH_TO_RELEASE_CONFIG_DIR ist build/release.
package enthält denselben Paketnamen wie in der Deklaration.
srcs ist eine Liste aller Dateien mit Flag-Werten.
Speichern Sie die Datei und beenden Sie den Editor.
Rufen Sie das Verzeichnis auf, das dem aktuellen Verzeichnis (cd ..) übergeordnet ist.
Bearbeiten Sie die Datei Android.bp. Diese Builddatei enthält eine Liste der Namen (name), die den einzelnen Flag-Wertdateien zugeordnet sind. Fügen Sie dieser Liste den Namen hinzu, den Sie in der vorherigen Build-Datei (Schritt 8) verwendet haben.
Erstelle Android und führe den neuen Code aus, um sicherzustellen, dass er gemäß der Einstellung in der Datei mit den Flag-Werten aktiviert ist.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]