Domyślnie wszystkie flagi uruchamiania funkcji mają ustawienie READ_WRITE i są DISABLED.
Zanim przetestujesz funkcję, musisz zastąpić wartość domyślną używaną w kompilacji, tworząc plik wartości flag dla flagi. W pliku wartości flag ustawiasz stan poszczególnych flag (ENABLED lub DISABLED) oraz uprawnienia (READ_WRITE lub READ_ONLY).
Konfiguracja wersji to katalog zawierający wszystkie pliki wartości flag dla konkretnej kompilacji Androida (z włączonymi i wyłączonymi określonymi funkcjami).
AOSP zawiera kilka konfiguracji wersji, np. trunk_staging.
Katalogi konfiguracji wersji znajdują się w
WORKING_DIRECTORY/build/release/aconfig/.
Gdy używasz polecenia lunch, aby
wybrać miejsce docelowe, ustawiasz
też konfigurację wersji dla tego miejsca.
Oto przykład miejsca docelowego 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 używa głównie flag READ_WRITE, które umożliwiają testowanie kodu z włączonymi lub wyłączonymi funkcjami w czasie działania.
W przypadku ogólnego udostępnienia użyj konfiguracji wersji produkcyjnej. Konfiguracja wersji produkcyjnej używa głównie flag READ_ONLY i odzwierciedla cały kod włączony w tej wersji.
Dodawanie flagi do konfiguracji wersji trunk_staging
Aby przetestować nową flagę, dodaj ją do konfiguracji wersji trunk_staging w ten sposób:
- Otwórz
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/. - Utwórz katalog o takiej samej nazwie pakietu jak flaga, np.
com.example.android.aconfig.demo.flagsjak pokazano w sekcji Deklarowanie flagi aconfig w Javie. - Otwórz nowy katalog.
- W katalogu utwórz plik wartości flag, który łączy nazwę używaną w
pliku deklaracji flagi (
.aconfig), np.my_static_flag, jak pokazano w sekcji Deklarowanie flagi aconfig w Javie z_flag_values.textproto. Nazwa wynikowego pliku tomy_static_flag_flag_values.textproto. Edytuj plik i dodaj
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 jest używana w deklaracji.namezawiera tę samą nazwę, która jest używana w deklaracji.statetoENABLEDlubDISABLED.permissiontoREAD_WRITElubREAD_ONLY. Zwykle w przypadku plików wartości flag, które są częścią konfiguracji wersji,permissionjest ustawione naREAD_ONLY.
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.bputwórz sekcjęaconfig_valuespodobną do tej:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.example.android.aconfig.demo.flags-all", package: "com.example.android.aconfig.demo.flags", srcs: [ "*_flag_values.textproto", ] }Gdzie:
nameto unikalna nazwa modułu kompilacji Soong. Google uses the convention ofaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG_NAME-package.name-all. Ta nazwa musi być zgodna z nazwą, którą Soong automatycznie generuje na podstawie deklaracjiaconfig_value_setw plikuAndroid.bpkatalogu nadrzędnego. Pamiętaj, żePATH_TO_RELEASE_CONFIG_DIRtobuild_release.packagezawiera tę samą nazwę pakietu, która jest używana w deklaracji.srcsto lista wszystkich plików wartości flag.
Zapisz plik i zamknij edytor.
Otwórz katalog nadrzędny (użyj polecenia
cd ..).Skompiluj Androida i uruchom nowy kod, aby sprawdzić, czy jest włączony zgodnie z ustawieniem w pliku wartości flag.