Impostare i valori del flag di lancio della funzionalità

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 compilazione 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 release è una directory che contiene tutti i file dei valori dei flag per una build specifica di Android (con alcune funzionalità attivate e disattivate).

AOSP viene fornito con alcune configurazioni di 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 un target, imposti anche la configurazione di rilascio per il target. Ad esempio, il seguente è un target trunk_staging:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

La gestione delle versioni del trunk è una configurazione di release di sviluppo perché Google la utilizza per testare le funzionalità prima del rilascio generale. Questa configurazione utilizza principalmente flag READ_WRITE che ti consentono di testare il codice con le funzionalità attivate o disabilitate in fase di esecuzione.

Al momento del rilascio generale, utilizza una configurazione di release. Una configurazione della release utilizza principalmente i flag READ_ONLY e riflette tutto il codice attivato per la release.

Aggiungi un flag alla configurazione della release trunk_staging

Per testare un nuovo flag, aggiungilo alla configurazione della release trunk_staging come segue:

  1. Vai a WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. 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.
  3. Vai alla nuova directory.
  4. Nella directory, crea un file di valori dei flag che combini il nome utilizzato nel file di dichiarazione del flag (.aconfig), ad esempio my_static_flag mostrato in Dichiara un flag aconfig per Java con _flag_values.textproto. Il nome del file risultante è my_static_flag_flag_values.textproto.
  5. 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 o DISABLED.
    • permission è READ_WRITE o READ_ONLY. In genere, permission è impostato su READ_ONLY per i file dei valori dei flag che fanno parte di una configurazione di release.
  6. Salva il file ed esci dall'editor.

  7. Nella stessa directory del file dei valori dei flag, crea un file di compilazione denominato Android.bp. Questo file viene utilizzato per includere il file dei valori dei flag nella compilazione.

  8. Nel file Android.bp, crea una sezione aconfig_values simile alla seguente:

    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 compilazione Soong. Google utilizza la convenzione di aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. Tieni presente che PATH_TO_RELEASE_CONFIG_DIR è build/release.
    • package contiene lo stesso nome del pacchetto utilizzato nella dichiarazione.
    • srcs è un elenco di tutti i file dei valori di flag.
  9. Salva il file ed esci dall'editor.

  10. Vai alla directory sopra quella corrente (cd ..)

  11. Modifica il file Android.bp. Questo file di compilazione contiene un elenco dei nomi (name) associati a ciascun file di valori dei flag. Aggiungi a questo elenco il nome utilizzato nel file di compilazione precedente (passaggio 8).

  12. Compila Android ed esegui il nuovo codice per assicurarti che sia abilitato in base all'impostazione nel file dei valori dei flag.