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 festgelegt. Bevor Sie eine Funktion testen können, müssen Sie den im Build verwendeten Standardwert überschreiben. Dazu erstellen Sie eine Datei mit Flag-Werten für das Flag. 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 Entwicklungsversionen, 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 für einen Release verwendet hauptsächlich READ_ONLY-Flags und spiegelt den gesamten für diesen Release aktivierten Code wider.

Der Releasekonfiguration „trunk_staging“ ein Flag hinzufügen

So testen Sie ein neues Flag: Fügen Sie es der Releasekonfiguration trunk_staging so 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.android.aconfig.test-all",
      package: "com.android.aconfig.test",
      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. 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. Bearbeiten Sie die Datei Android.bp. Diese Build-Datei enthält eine Liste der Namen (name), die jeder Datei mit Flag-Werten zugeordnet sind. Fügen Sie dieser Liste den Namen hinzu, den Sie in der vorherigen Build-Datei (Schritt 8) verwendet haben.

  12. Erstellen Sie Android und führen Sie den neuen Code aus, um sicherzustellen, dass er gemäß der Einstellung in der Datei mit den Flag-Werten aktiviert ist.