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:
- Rufen Sie
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/auf. - Erstellen Sie ein Verzeichnis mit demselben Paketnamen wie Ihr Flag, z. B.
com.example.android.aconfig.demo.flagswie in Ein aconfig-Flag für Java deklarieren gezeigt. - Rufen Sie das neue Verzeichnis auf.
- 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.textprotogezeigt. Der resultierende Dateiname istmy_static_flag_flag_values.textproto. 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:
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 istpermissionfür Dateien mit Flag-Werten, 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 Flag-Werten eine Build-Datei mit dem Namen
Android.bp. Mit dieser Datei wird die Datei mit Flag-Werten in den Build aufgenommen.Erstellen Sie in der Datei
Android.bpeinen Abschnittaconfig_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:
nameist 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. Dieser Name muss mit dem Namen übereinstimmen, der von Soong automatisch basierend auf der Deklarationaconfig_value_setin der DateiAndroid.bpdes übergeordneten Verzeichnisses generiert wird.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.
Rufen Sie das Verzeichnis über dem aktuellen Verzeichnis auf (
cd ..).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.