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:
- Zu
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
navigieren - 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. - Wechseln Sie zum neuen Verzeichnis.
- 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 lautetmy_static_flag_flag_values.textproto
. 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 entwederENABLED
oderDISABLED
.permission
ist entwederREAD_WRITE
oderREAD_ONLY
. Im Allgemeinen wirdpermission
für Flag-Wert-Dateien, die Teil einer Releasekonfiguration sind, aufREAD_ONLY
gesetzt.
Speichern Sie die Datei und beenden Sie den Editor.
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.Erstellen Sie in der Datei
Android.bp
einenaconfig_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 Konventionaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
.PATH_TO_RELEASE_CONFIG_DIR
istbuild/release
.package
enthält denselben Paketnamen, der in der Deklaration verwendet wird.srcs
ist eine Liste aller Dateien mit Flag-Werten.
Speichern Sie die Datei und beenden Sie den Editor.
Wechseln Sie zum Verzeichnis über dem aktuellen Verzeichnis (
cd ..
).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.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.