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

Standardmäßig sind alle Flags für die Feature-Einführung READ_WRITE und auf DISABLED gesetzt. Bevor Sie ein Feature testen können, müssen Sie den Standardwert überschreiben, der im Build verwendet wird. 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) eines einzelnen Flags fest.

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

AOSP wird mit einigen Releasekonfigurationen ausgeliefert, z. B. trunk_staging. Verzeichnisse mit Releasekonfigurationen 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. Das folgende Beispiel zeigt ein trunk_staging-Ziel:

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

`trunk_staging` ist eine Releasekonfiguration für die Entwicklung, da Google damit Features vor der allgemeinen Veröffentlichung testet. Diese Konfiguration verwendet hauptsächlich READ_WRITE-Flags, mit denen Sie Ihren Code mit aktivierten oder deaktivierten Features zur Laufzeit testen können.

Verwenden Sie bei der allgemeinen Veröffentlichung eine Releasekonfiguration für die Veröffentlichung. Eine Releasekonfiguration für die Veröffentlichung verwendet hauptsächlich READ_ONLY-Flags und spiegelt den gesamten Code wider, der für diese Veröffentlichung aktiviert ist.

Der Releasekonfiguration `trunk_staging` ein Flag hinzufügen

Wenn Sie ein neues Flag testen möchten, fügen Sie es der Releasekonfiguration trunk_staging so hinzu:

  1. Rufen Sie WORKING_DIRECTORY/build/release/aconfig/trunk_staging/ auf.
  2. Erstellen Sie ein Verzeichnis mit demselben Paketnamen wie Ihr Flag, z. B. com.example.android.aconfig.demo.flags wie in Ein 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 Namen kombiniert, der in der Datei mit der Flag-Deklaration (.aconfig) verwendet wird, z. B. my_static_flag, wie in Ein aconfig-Flag für Java deklarieren mit _flag_values.textproto gezeigt. Der resultierende Dateiname ist my_static_flag_flag_values.textproto.
  5. Bearbeiten Sie die Datei und fügen Sie einen flag_value ähnlich dem folgenden hinzu:

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

    Wobei:

    • 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 ist permission für Dateien mit Flag-Werten, 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 Flag-Werten eine Build-Datei mit dem Namen Android.bp. Mit dieser Datei wird die Datei mit Flag-Werten in den Build aufgenommen.

  8. Erstellen Sie in der Datei Android.bp einen Abschnitt aconfig_values ähnlich dem folgenden:

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

    Wobei:

    • 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. Dieser Name muss mit dem Namen übereinstimmen, der von Soong automatisch basierend auf der Deklaration aconfig_value_set in der Datei Android.bp 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. Rufen Sie das Verzeichnis über dem aktuellen Verzeichnis auf (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 Flag-Werten aktiviert ist.