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 di un singolo flag (ENABLED o DISABLED) e l'autorizzazione (READ_WRITE o READ_ONLY).
Una configurazione della release è una directory che contiene tutti i file di valori dei flag per una build specifica di Android (con determinate funzionalità attivate e disattivate).
AOSP viene fornito con alcune configurazioni della release, 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, imposti
anche la configurazione della release per la destinazione.
Ad esempio, di seguito è riportata una destinazione trunk_staging:
lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug
La trunk staging è una configurazione della release di sviluppo perché Google la utilizza per testare le funzionalità prima della release generale. Questa configurazione utilizza principalmente flag READ_WRITE che ti consentono di testare il codice con le funzionalità attivate o disattivate in fase di runtime.
Nella release generale, utilizza una configurazione della release di rilascio. Una configurazione della release di rilascio utilizza principalmente flag READ_ONLY e riflette tutto il codice abilitato per quella release.
Aggiungere un flag alla configurazione della 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.flagsmostrato 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_flagmostrato 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_valuesimile al seguente:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }Dove:
packagecontiene lo stesso nome del pacchetto utilizzato nella dichiarazione.namecontiene lo stesso nome utilizzato nella dichiarazione.stateèENABLEDoDISABLED.permissionèREAD_WRITEoREAD_ONLY. In genere,permissionè impostato suREAD_ONLYper i file di valori dei flag che fanno parte di una configurazione della release.
Salva il file ed esci dall'editor.
Nella stessa directory del file di valori dei flag, crea un file di build denominato
Android.bp. Questo file viene utilizzato per includere il file di valori dei flag nella build.Nel file
Android.bp, crea una sezioneaconfig_valuessimile a: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", ] }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. Questo nome deve corrispondere al nome generato automaticamente da Soong in base alla dichiarazioneaconfig_value_setnel fileAndroid.bpdella directory principale. Tieni presente chePATH_TO_RELEASE_CONFIG_DIRèbuild_release.packagecontiene lo stesso nome del pacchetto utilizzato nella dichiarazione.srcsè un elenco di tutti i file di valori dei flag.
Salva il file ed esci dall'editor.
Vai alla directory sopra la directory corrente (
cd ..)Crea Android ed esegui il nuovo codice per verificare che sia abilitato in base all'impostazione nel file di valori dei flag.