I flag di lancio delle funzionalità vengono utilizzati da Google come approccio per garantire branche di codice stabili. Questi flag sono obbligatori anche per alcuni tipi di contributi ad AOSP. Prima di implementare la segnalazione del lancio di una funzionalità, stabilisci se è necessaria una segnalazione per la modifica. Se è necessario un flag, dovresti determinare il tipo di flag da usare.
Determinare l'utilizzo dei flag
Per determinare quando utilizzare un flag di lancio di una funzionalità, segui queste linee guida:
Se apporti una modifica che potrebbe causare l'instabilità della base di codice AOSP, come l'aggiunta di una nuova funzionalità o la correzione di un bug particolarmente complesso, utilizza un flag di lancio della funzionalità.
Al contrario, se apporti una modifica al codice che non è suscettibile di causare l'instabilità della base di codice, ad esempio la modifica dei commenti, non è necessario utilizzare un flag di lancio della funzionalità.
Determina il tipo di flag
Esistono due tipi di flag: flag aconfig e flag di compilazione.
Flag Aconfig
I flag Aconfig vengono utilizzati per separare l'esecuzione di codice non rilasciato dal codice rilasciato durante il processo di test e rilascio. I flag Aconfig possono essere di lettura/scrittura o di sola lettura:
I flag aconfig di lettura/scrittura sono variabili booleane che puoi attivare (impostate su
true
) o disattivare (impostate sufalse
) in fase di esecuzione. Utilizza un flag di lettura/scrittura per testare e rilasciare le modifiche senza influire sulla stabilità di un ramo principale.I flag aconfig di sola lettura sono costanti booleane che non possono essere modificate durante il runtime. Puoi convertire i flag aconfig di lettura/scrittura in flag aconfig di sola lettura per il codice stabile e pronto per il rilascio.
Inoltre, a seconda del compilatore utilizzato, quando viene utilizzato un flag di sola lettura, il codice non eseguito potrebbe essere escluso dalla compilazione. Di conseguenza, puoi utilizzare flag di sola lettura per nascondere il codice non pronto per far parte di una release.
Flag per build
I flag di compilazione sono costanti (stringhe) di compilazione e non puoi modificarli durante il tempo di esecuzione. Utilizza questi flag nei casi in cui non puoi usare i flag aconfig, ad esempio:
- Hai un codice precompilato o predefinito che vuoi includere nella compilazione.
- Vuoi apportare modifiche al sistema di compilazione stesso.
- Vuoi inserire flag nelle dipendenze per gestire le dimensioni del codice.