Ustaw wartości flag uruchamiania funkcji

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:

  1. Prowadź do: WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. 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.
  3. Przejdź do nowego katalogu.
  4. W katalogu utwórz plik wartości flagi, który łączy nazwę używaną w pliku deklaracji flagi (.aconfig), np. my_static_flagDeklarowanie flagi aconfig dla Javy, z _flag_values.textproto. Powstały plik ma nazwę my_static_flag_flag_values.textproto.
  5. 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 lub DISABLED.
    • permission może być READ_WRITE lub READ_ONLY. Zazwyczaj parametr permission ma wartość READ_ONLY w przypadku plików wartości flag, które są częścią konfiguracji wersji.
  6. Zapisz plik i zamknij edytor.

  7. 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.

  8. 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 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.
  9. Zapisz plik i zamknij edytor.

  10. Przejdź do katalogu nad bieżącym (cd ..).

  11. 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).

  12. Utwórz plik kompilacji Androida i uruchom nowy kod, aby sprawdzić, czy jest włączony zgodnie z ustawieniem w pliku wartości flag.