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:
- 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. - Rufen Sie das neue Verzeichnis auf.
- 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 lautetmy_static_flag_flag_values.textproto
. 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 entwederENABLED
oderDISABLED
.permission
ist entwederREAD_WRITE
oderREAD_ONLY
. Im Allgemeinen istpermission
für Flag-Wertedateien, die Teil einer Release-Konfiguration sind, aufREAD_ONLY
festgelegt.
Speichern Sie die Datei und beenden Sie den Editor.
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.Erstellen Sie in der Datei
Android.bp
einen Abschnittaconfig_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 vonaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
.PATH_TO_RELEASE_CONFIG_DIR
istbuild/release
.package
enthält denselben Paketnamen wie in der Deklaration.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 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.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.