Per impostazione predefinita, tutti i flag di lancio delle funzionalità sono READ_WRITE
e impostati su DISABLED
.
Prima di poter testare una funzionalità, devi sostituire il valore predefinito utilizzato nella
build creando un file di valori dei flag per il flag. In un file di valori dei flag,
imposti lo stato (ENABLED
o DISABLED
) e l'autorizzazione
(READ_WRITE
o READ_ONLY
) di un singolo flag.
Una configurazione di rilascio è una directory che contiene tutti i file con i valori dei flag per una build specifica di Android (con determinate funzionalità attivate e disattivate).
AOSP viene fornito con alcune configurazioni di rilascio, ad esempio trunk_staging
.
Le directory di configurazione della release si trovano in
WORKING_DIRECTORY/build/release/aconfig/
.
Quando utilizzi il comando lunch
per
scegliere una destinazione, stai
anche impostando la configurazione di rilascio per la destinazione.
Ad esempio, il seguente è un target trunk_staging
:
lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug
Lo staging del trunk è una configurazione di rilascio per lo sviluppo perché
Google la utilizza per testare le funzionalità prima del rilascio generale. Questa configurazione
utilizza
principalmente flag READ_WRITE
che consentono di testare il codice con le funzionalità attivate o
disattivate in fase di runtime.
Al momento del rilascio generale, utilizza una configurazione di release di rilascio. Una configurazione di rilascio
utilizza principalmente i flag READ_ONLY
e riflette tutto il codice
abilitato per la release.
Aggiungi un flag alla configurazione di release trunk_staging
Per testare un nuovo flag, aggiungilo alla configurazione della release trunk_staging
nel seguente modo:
- Vai a
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
- Crea una directory con lo stesso nome del pacchetto del flag, ad esempio
com.example.android.aconfig.demo.flags
mostrato in Dichiarare un flag aconfig per Java. - Vai alla nuova directory.
- Nella directory, crea un file di valori dei flag che combini il nome utilizzato nel file di dichiarazione del flag (
.aconfig
), ad esempiomy_static_flag
mostrato in Dichiarare un flag aconfig per Java con_flag_values.textproto
. Il nome del file risultante èmy_static_flag_flag_values.textproto
. Modifica il file e aggiungi un
flag_value
simile al seguente:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
Dove:
package
contiene lo stesso nome del pacchetto utilizzato nella dichiarazione.name
contiene lo stesso nome utilizzato nella dichiarazione.state
èENABLED
oDISABLED
.permission
èREAD_WRITE
oREAD_ONLY
. In genere, ilpermission
è impostato suREAD_ONLY
per i file dei valori dei flag che fanno parte di una configurazione di rilascio.
Salva il file ed esci dall'editor.
Nella stessa directory del file dei valori dei flag, crea un file di build denominato
Android.bp
. Questo file viene utilizzato per includere il file dei valori dei flag nella build.Nel file
Android.bp
, crea una sezioneaconfig_values
simile a questa:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
Dove:
name
è il nome univoco del modulo di build Soong. Google utilizza la convenzione diaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
. Tieni presente chePATH_TO_RELEASE_CONFIG_DIR
èbuild/release
.package
contiene lo stesso nome del pacchetto utilizzato nella dichiarazione.srcs
è un elenco di tutti i tuoi file di valori dei flag.
Salva il file ed esci dall'editor.
Vai alla directory sopra la directory corrente (
cd ..
)Modifica il file
Android.bp
. Questo file di build contiene un elenco dei nomi (name
) associati a ogni file di valori dei flag. Aggiungi a questo elenco il nome che hai utilizzato nel file di build precedente (passaggio 8).Crea Android ed esegui il nuovo codice per assicurarti che sia abilitato in base all'impostazione nel file dei valori dei flag.