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_staging
konfiguracji 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_flag
pokazaną 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_value
podobny do tego: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ę, która została użyta w deklaracji.state
toENABLED
lubDISABLED
.permission
toREAD_WRITE
lubREAD_ONLY
. Zwykle wartośćpermission
jest ustawiona naREAD_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 w kompilacji pliku wartości flag.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 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_DIR
jestbuild/release
.package
zawiera tę samą nazwę pakietu, która została użyta w deklaracji.srcs
to 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.