Ustawianie wartości flagi wdrażania funkcji

Domyślnie wszystkie flagi uruchamiania funkcji są ustawione na READ_WRITEDISABLED. 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:

  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 Deklarowanie flagi aconfig w przypadku Javy.
  3. Przejdź do nowego katalogu.
  4. 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_flag_values.textproto. Powstała nazwa pliku to my_static_flag_flag_values.textproto.
  5. 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 to ENABLED lub DISABLED.
    • permission to READ_WRITE lub READ_ONLY. Zwykle wartość permission jest ustawiona na 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 w kompilacji pliku wartości flag.

  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 unikalna 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 jest build/release.
    • package zawiera tę samą nazwę pakietu, która została użyta w deklaracji.
    • srcs to lista wszystkich plików wartości flag.
  9. Zapisz plik i zamknij edytor.

  10. Przejdź do katalogu powyżej bieżącego katalogu (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żywaną w poprzednim pliku kompilacji (krok 8).

  12. Skompiluj Androida i uruchom nowy kod, aby sprawdzić, czy jest włączony zgodnie z ustawieniem w pliku wartości flagi.