Werte für Funktionseinführungen 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. Erstellen Sie dazu eine Datei mit Flag-Werten für das Flag. In einer Flag-Wertdatei legen Sie den Status (ENABLED oder DISABLED) und die Berechtigung (READ_WRITE oder READ_ONLY) einer einzelnen Kennzeichnung fest.

Eine Release-Konfiguration ist ein Verzeichnis, das alle Flag-Wertdateien für einen bestimmten Android-Build enthält, bei dem bestimmte Funktionen aktiviert und deaktiviert sind.

AOSP wird mit einigen Releasekonfigurationen wie trunk_staging ausgeliefert. Die Verzeichnisse für die Releasekonfiguration finden Sie 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. Ein Beispiel für ein trunk_staging-Ziel:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Das Trunk-Staging ist eine Konfiguration für die Entwicklungsversion, da Google damit Funktionen vor der allgemeinen Veröffentlichung testet. 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 für die allgemeine Verfügbarkeit eine Releasekonfiguration. In einer Release-Konfiguration werden hauptsächlich READ_ONLY-Flags verwendet. Sie enthält den gesamten Code, der für diesen Release aktiviert ist.

Fügen Sie der Releasekonfiguration „trunk_staging“ ein Flag hinzu.

Wenn Sie ein neues Flag testen möchten, fügen Sie es der trunk_staging-Releasekonfiguration 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. Rufen Sie das neue Verzeichnis auf.
  4. Erstellen Sie im Verzeichnis eine Datei mit Flag-Werten, die den in der Flag-Deklarationsdatei (.aconfig) verwendeten Namen, z. B. my_static_flag aus Ein aconfig-Flag für Java deklarieren, mit _flag_values.textproto kombiniert. Der resultierende Dateiname lautet my_static_flag_flag_values.textproto.
  5. Bearbeiten Sie die Datei und fügen Sie eine flag_value hinzu, die in etwa so aussieht:

    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 wie in der Deklaration.
    • name enthält denselben Namen wie in der Deklaration.
    • state ist entweder ENABLED oder DISABLED.
    • permission ist entweder READ_WRITE oder READ_ONLY. Im Allgemeinen ist permission für Flag-Wertedateien, die Teil einer Release-Konfiguration sind, auf READ_ONLY festgelegt.
  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 namens Android.bp. Über diese Datei wird die Datei mit den Flag-Werten in den Build eingefügt.

  8. Erstellen Sie in der Datei Android.bp einen Abschnitt aconfig_values, der in etwa 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 von 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 wie in der Deklaration.
    • 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 Builddatei enthält eine Liste der Namen (name), die den einzelnen Flag-Wertdateien 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.