Werte für das Flag zur Einführung von Funktionen festlegen

Standardmäßig sind alle Flags für die Einführung von Funktionen READ_WRITE und auf DISABLED gesetzt. Bevor Sie eine Funktion testen können, müssen Sie den im Build verwendeten Standardwert überschreiben, indem Sie eine Datei mit Flag-Werten für das Flag erstellen. In einer Datei mit Flag-Werten legen Sie den Status (ENABLED oder DISABLED) und die Berechtigung (READ_WRITE oder READ_ONLY) für ein einzelnes Flag fest.

Eine Release-Konfiguration ist ein Verzeichnis, das alle Dateien mit Flag-Werten für einen bestimmten Build von Android enthält (mit bestimmten aktivierten und deaktivierten Funktionen).

AOSP wird mit einigen Releasekonfigurationen ausgeliefert, z. B. trunk_staging. Releasekonfigurationsverzeichnisse befinden sich unter WORKING_DIRECTORY/build/release/aconfig/.

Wenn Sie mit dem Befehl lunch ein Ziel auswählen, legen Sie auch die Releasekonfiguration für das Ziel fest. Das Folgende ist beispielsweise ein trunk_staging-Ziel:

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

Trunk-Staging ist eine Konfiguration für Entwicklungsreleases, da Google sie zum Testen von Funktionen vor der allgemeinen Veröffentlichung verwendet. Bei dieser Konfiguration werden hauptsächlich READ_WRITE-Flags verwendet, mit denen Sie Ihren Code mit aktivierten oder deaktivierten Funktionen zur Laufzeit testen können.

Verwenden Sie bei der allgemeinen Veröffentlichung eine Releasekonfiguration. Eine Release-Konfiguration verwendet hauptsächlich READ_ONLY-Flags und enthält den gesamten für diesen Release aktivierten Code.

Flag zur Releasekonfiguration „trunk_staging“ hinzufügen

So testen Sie ein neues Flag: Fügen Sie es der trunk_staging-Releasekonfiguration hinzu:

  1. Zu WORKING_DIRECTORY/build/release/aconfig/trunk_staging/ navigieren
  2. Erstellen Sie ein Verzeichnis mit demselben Paketnamen wie Ihr Flag, z. B. com.example.android.aconfig.demo.flags, wie in Aconfig-Flag für Java deklarieren gezeigt.
  3. Wechseln Sie zum neuen Verzeichnis.
  4. Erstellen Sie im Verzeichnis eine Datei mit Flag-Werten, in der der Name aus der Datei mit der Flag-Deklaration (.aconfig), z. B. my_static_flag aus Aconfig-Flag für Java deklarieren, mit _flag_values.textproto kombiniert wird. Der resultierende Dateiname lautet my_static_flag_flag_values.textproto.
  5. Bearbeiten Sie die Datei und fügen Sie einen flag_value ein, der dem folgenden ähnelt:

    flag_value {
      package: "com.example.android.aconfig.demo.flags"
      name: "my_static_flag"
      state: DISABLED
      Permission: READ_WRITE
    }
    

    Dabei gilt:

    • package enthält denselben Paketnamen, der in der Deklaration verwendet wird.
    • name enthält denselben Namen, der in der Deklaration verwendet wird.
    • state ist entweder ENABLED oder DISABLED.
    • permission ist entweder READ_WRITE oder READ_ONLY. Im Allgemeinen wird permission für Flag-Wert-Dateien, die Teil einer Releasekonfiguration sind, auf READ_ONLY gesetzt.
  6. Speichern Sie die Datei und beenden Sie den Editor.

  7. Erstellen Sie im selben Verzeichnis wie die Datei mit den Flag-Werten eine Build-Datei mit dem Namen Android.bp. Diese Datei wird verwendet, um die Datei mit den Flag-Werten in den Build einzuschließen.

  8. Erstellen Sie in der Datei Android.bp einen aconfig_values-Abschnitt, der so aussieht:

    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",
      ]
    }
    

    Dabei gilt:

    • name ist der eindeutige Name für das Soong-Build-Modul. Google verwendet die Konvention aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG_NAME-package.name-all. Dieser Name muss mit dem Namen übereinstimmen, der von Soong automatisch auf Grundlage der aconfig_value_set-Deklaration in der Android.bp-Datei des übergeordneten Verzeichnisses generiert wird. PATH_TO_RELEASE_CONFIG_DIR ist build_release.
    • package enthält denselben Paketnamen, der in der Deklaration verwendet wird.
    • srcs ist eine Liste aller Dateien mit Flag-Werten.
  9. Speichern Sie die Datei und beenden Sie den Editor.

  10. Wechseln Sie zum Verzeichnis über dem aktuellen Verzeichnis (cd ..).

  11. Erstellen Sie Android und führen Sie den neuen Code aus, um zu prüfen, ob er gemäß der Einstellung in der Datei mit den Flag-Werten aktiviert ist.