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
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
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:
- 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 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
. Zmodyfikuj plik i dodaj
flag_value
w ten sposób:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
Gdzie:
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
lubDISABLED
.permission
może byćREAD_WRITE
lubREAD_ONLY
. Zazwyczaj parametrpermission
ma wartośćREAD_ONLY
w 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 pliku wartości flag w kompilacji.W pliku
Android.bp
utwórz sekcjęaconfig_values
podobną 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:
name
to niepowtarzalna 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_DIR
tobuild/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.