Domyślnie wszystkie flagi uruchamiania funkcji są ustawione na READ_WRITE i DISABLED.
Zanim przetestujesz funkcję, musisz zastąpić wartość domyślną używaną w kompilacji, tworząc dla niej plik wartości flagi. W pliku wartości flagi możesz ustawić stan poszczególnych flag (ENABLED lub DISABLED) i uprawnienia (READ_WRITE lub READ_ONLY).
Konfiguracja wersji to katalog zawierający wszystkie pliki z wartościami flag dla konkretnej kompilacji Androida (z określonymi włączonymi i wyłączonymi funkcjami).
AOSP zawiera kilka konfiguracji wersji, np. trunk_staging.
Katalogi konfiguracji wersji znajdziesz w sekcji WORKING_DIRECTORY/build/release/aconfig/.
Gdy używasz polecenia lunch, aby wybrać cel, ustawiasz też konfigurację wersji dla tego celu.
Na przykład poniżej znajduje się trunk_staging:
lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug
Trunk staging to konfiguracja wersji deweloperskiej, ponieważ Google używa jej do testowania funkcji przed ich ogólnym udostępnieniem. Ta konfiguracja korzysta głównie z flag READ_WRITE, które umożliwiają testowanie kodu z włączonymi lub wyłączonymi funkcjami w czasie działania.
W przypadku wersji ogólnodostępnej użyj konfiguracji wersji. Konfiguracja wersji w większości przypadków używa READ_ONLY flag i odzwierciedla cały kod włączony w danej wersji.
Dodawanie flagi do konfiguracji wersji trunk_staging
Aby przetestować nową flagę, dodaj ją do trunk_stagingkonfiguracji wersji w ten sposób:
- Prowadź do:
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/ - Utwórz katalog o tej samej nazwie pakietu co flaga, np.
com.example.android.aconfig.demo.flags, jak pokazano w sekcji Deklarowanie flagi aconfig w przypadku Javy. - Przejdź do nowego katalogu.
- W katalogu utwórz plik wartości flag, który łączy nazwę używaną w pliku deklaracji flagi (
.aconfig), np.my_static_flagpokazaną w sekcji Deklarowanie flagi aconfig w przypadku Javy z_flag_values.textproto. Powstała nazwa pliku tomy_static_flag_flag_values.textproto. Edytuj plik i dodaj do niego kod
flag_valuepodobny do tego:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }Gdzie:
packagezawiera tę samą nazwę pakietu, która została użyta w deklaracji.namezawiera tę samą nazwę, która została użyta w deklaracji.statetoENABLEDlubDISABLED.permissiontoREAD_WRITElubREAD_ONLY. Zwykle wartośćpermissionjest ustawiona naREAD_ONLYw przypadku plików wartości flag, 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 w kompilacji pliku wartości flag.W pliku
Android.bputwórz sekcjęaconfig_valuespodobną do tej:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }Gdzie:
nameto unikalna nazwa modułu kompilacji Soong. Google używa konwencjiaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. Pamiętaj, żePATH_TO_RELEASE_CONFIG_DIRjestbuild/release.packagezawiera tę samą nazwę pakietu, która została użyta w deklaracji.srcsto lista wszystkich plików wartości flag.
Zapisz plik i zamknij edytor.
Przejdź do katalogu powyżej bieżącego katalogu (
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żywaną w poprzednim pliku kompilacji (krok 8).Skompiluj Androida i uruchom nowy kod, aby sprawdzić, czy jest włączony zgodnie z ustawieniem w pliku wartości flagi.