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_flagaus Aconfig-Flag für Java deklarieren, mit_flag_values.textprotokombiniert wird. Der resultierende Dateiname lautetmy_static_flag_flag_values.textproto. Bearbeiten Sie die Datei und fügen Sie einen
flag_valueein, der dem folgenden ähnelt:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }Dabei gilt:
packageenthält denselben Paketnamen, der in der Deklaration verwendet wird.nameenthält denselben Namen, der in der Deklaration verwendet wird.stateist entwederENABLEDoderDISABLED.permissionist entwederREAD_WRITEoderREAD_ONLY. Im Allgemeinen wirdpermissionfür Flag-Wert-Dateien, die Teil einer Releasekonfiguration sind, aufREAD_ONLYgesetzt.
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.bpeinenaconfig_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:
nameist 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_DIRistbuild/release.packageenthält denselben Paketnamen, der in der Deklaration verwendet wird.srcsist 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.