Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Domyślnie wszystkie flagi uruchamiania funkcji mają wartość READ_WRITE i są ustawione na DISABLED.
Zanim zaczniesz testować funkcję, musisz zastąpić domyślną wartość użytą w kompilacji, tworząc plik z wartościami flagi. W pliku wartości flagi możesz ustawić stan (ENABLED lub DISABLED) i uprawnienia (READ_WRITE lub READ_ONLY) pojedynczej flagi.
Konfiguracja wersji to katalog zawierający wszystkie wartości flag plików dla konkretnej wersji Androida (z włączonymi i wyłączonymi funkcjami).
AOSP jest dostarczany z kilkoma konfiguracjami wersji, np. trunk_staging.
Katalogi konfiguracji wersji znajdują się w sekcji WORKING_DIRECTORY/build/release/aconfig/.
.
Gdy używasz polecenia lunch, aby wybrać element docelowy, konfigurujesz też konfigurację wersji dla tego elementu.
Na przykład:trunk_staging
Staging trunka to konfiguracja wersji deweloperskiej, ponieważ Google używa jej do testowania funkcji przed udostępnieniem wersji ogólnej. Ta konfiguracja używa głównie flag READ_WRITE, które umożliwiają testowanie kodu z włączonymi lub wyłączonymi funkcjami w czasie wykonywania.
W przypadku ogólnego wydania użyj konfiguracji wersji. Konfiguracja wersji korzysta głównie z flag READ_ONLY i odzwierciedla cały kod włączony w tej wersji.
Dodaj flagę do konfiguracji wersji trunk_staging
Aby przetestować nową flagę, dodaj ją do konfiguracji wersji trunk_staging w ten sposób:
Utwórz katalog o tej samej nazwie pakietu co flaga, np. com.example.android.aconfig.demo.flags, jak pokazano w sekcji Zadeklaruj flagę aconfig dla Javy.
Przejdź do nowego katalogu.
W katalogu utwórz plik wartości flagi, który łączy nazwę używaną w pliku deklaracji flagi (.aconfig), np. my_static_flag w Deklarowanie flagi aconfig dla Javy, z _flag_values.textproto. Powstały plik ma nazwę my_static_flag_flag_values.textproto.
package zawiera tę samą nazwę pakietu, która została użyta w deklaracji.
name zawiera tę samą nazwę, co w deklaracji.
state może być ENABLED lub DISABLED.
permission może być READ_WRITE lub READ_ONLY. Zazwyczaj parametr permission ma wartość READ_ONLY w przypadku plików wartości flagi, które są częścią konfiguracji wersji.
Zapisz plik i zamknij edytor.
W tym samym katalogu co plik wartości flag utwórz plik kompilacji o nazwie Android.bp. Ten plik służy do uwzględniania pliku wartości flag w kompilacji.
W pliku Android.bp utwórz sekcję aconfig_values podobną do tej:
name to niepowtarzalna nazwa modułu kompilacji Soong. Google używa konwencji aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
Pamiętaj, że PATH_TO_RELEASE_CONFIG_DIR to build/release.
package zawiera tę samą nazwę pakietu, która została użyta w deklaracji.
srcs to lista wszystkich plików z wartościami flag.
Zapisz plik i zamknij edytor.
Przejdź do katalogu nad bieżącym (cd ..).
Edytuj plik Android.bp. Ten plik kompilacji zawiera listę nazw (name) powiązanych z każdym plikiem wartości flagi. Dodaj do tej listy nazwę użytą w poprzednim pliku kompilacji (krok 8).
Utwórz plik kompilacji Androida i uruchom nowy kod, aby sprawdzić, czy jest włączony zgodnie z ustawieniem w pliku wartości flag.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]