Risolvere i problemi relativi alle prestazioni delle build con l'Analizzatore build

Utilizza l'analizzatore di build per esaminare le prestazioni della build del tuo progetto. Per ogni build eseguita, l'analizzatore di build cerca di presentare le informazioni più importanti in modo da poter identificare e risolvere rapidamente le regressioni nelle prestazioni della build.

Per ulteriori strategie per migliorare le prestazioni delle build, leggi Ottimizzare la velocità delle build.

Inizia

Ogni volta che crei la tua app, lo strumento di analisi delle build crea un report e mostra i dati del report più recente nella finestra Crea.

Per iniziare, procedi nel seguente modo:

  1. Se non l'hai ancora fatto, crea la tua app in uno dei seguenti modi:
    • Fai clic su Crea > Crea progetto nella barra dei menu.
    • Per creare un Android App Bundle o un APK, fai clic su Crea > Build bundle/APK > Build bundle oppure su Crea > Build bundle/APK > Build APK dalla barra dei menu.
  2. Per aprire la finestra Crea, seleziona Visualizza > Finestre degli strumenti > Build dalla barra dei menu.
  3. Per visualizzare il report di build nello Analizzatore build, fai clic sulla scheda Analizzatore build nella finestra Crea.

I dati presentati dallo strumento di analisi delle build potrebbero cambiare da una build all'altra, perciò è utile creare il progetto più volte e confrontare i dati per identificare i pattern.

Visualizza i plug-in con attività che determinano la durata della build

Quando apri per la prima volta lo strumento di analisi build dopo aver completato una build, nella finestra viene visualizzata una panoramica dell'analisi della build, come mostrato nella figura 1.

Figura 1. La pagina di riepilogo dell'analizzatore build fornisce un riepilogo dei risultati.

Per un'analisi dettagliata dei plug-in con le attività che determinano la durata della build, fai clic su Plug-in con attività che influiscono sulla durata della build nella pagina di riepilogo. Puoi anche selezionare Attività dal menu a discesa e confermare che il raggruppamento avviene in base al plug-in. Il grafico ordina i plug-in e le attività correlate in base al tempo totale impiegato per completare.

Figura 2. L'analizzatore build fornisce un'analisi dei plug-in che influiscono sulla durata della build.

Visualizza le attività che determinano la durata della build

Per visualizzare un'analisi dettagliata delle attività che contribuiscono alla durata della build, fai clic su Attività che influiscono sulla durata della build nella pagina della panoramica o seleziona Attività dal menu a discesa. Se il progetto utilizza AGP 8.0 o versioni successive, le attività sono raggruppate per categoria per impostazione predefinita, quindi è più facile identificare le aree che influiscono sulla durata della build. Fai clic su ogni attività secondaria per saperne di più sulla sua esecuzione.

Figura 3. L'analizzatore build fornisce un'analisi delle attività più responsabili della durata della build.

Controlla gli avvisi

Se l'Analizzatore build rileva che alcune attività potrebbero essere configurate per essere eseguite in modo più efficiente, visualizza un avviso. Per visualizzare tutti gli avvisi identificati dallo strumento di analisi Build per la tua build, fai clic su Tutti gli avvisi nella pagina della panoramica o seleziona Avvisi dal menu a discesa.

Alcuni avvisi presentano un link Genera report, come mostrato nella Figura 4. Quando fai clic sul link Genera report, viene visualizzata una finestra di dialogo con ulteriori informazioni che potrebbero aiutare lo sviluppatore del plug-in a risolvere il problema in una nuova versione del plug-in. Fai clic su Copia per salvare il testo negli appunti e incollare più facilmente le informazioni in una segnalazione di bug per lo sviluppatore del plug-in.

Figura 4. Informazioni dettagliate sugli avvisi dello Strumento di analisi build.

Tipi di avvisi

Lo strumento di analisi della build segnala i seguenti tipi di avviso:

  • Esegui sempre le attività: un'attività sempre in esecuzione esegue altre attività su ogni build, il che non è necessario. Esistono due motivi principali per cui potresti visualizzare questo avviso:

    • (Più comune) Non hai dichiarato correttamente gli input e gli output delle attività. In questo caso, devi dichiarare correttamente gli input e gli output delle attività. Ciò significa che devi dichiarare autonomamente input e output, dove puoi farlo, o modificare le versioni dei plug-in se le attività che attivano l'avviso provengono da plug-in di terze parti.

    • (Meno comune) Per un'attività è impostato il valore false upToDateWhen, che dovrebbe essere evitato. Potrebbe essere che esista una logica che restituisce come valore false o che l'elemento upToDateWhen sia impostato come hardcoded come false. Se esiste una logica che restituisce false, questo risultato potrebbe essere intenzionale e potresti scegliere di ignorare l'avviso. Se upToDateWhen è impostato come falso come hardcoded, devi rimuovere l'hardcoded dal codice.

  • Problemi di configurazione delle attività: questo avviso viene generato per le attività che dichiarano la stessa directory degli output. Ciò significa che è molto probabile che gli output di queste attività non vengano conservati tra le build e che queste attività siano sempre eseguite, anche quando non vengono apportate modifiche. Per risolvere il problema, devi dichiarare directory di output diverse per le tue attività. Ciò significa che devi dichiarare directory di output diverse in cui puoi farlo o cambiare le versioni dei plug-in se le attività che attivano l'avviso provengono da plug-in di terze parti.

  • Processore di annotazioni non incrementali: questo avviso viene generato nelle situazioni in cui un processore di annotazioni non è incrementale e fa sì che l'attività JavaCompile venga sempre eseguita in modo non incrementale. Per risolvere questo avviso, passa a un processore di annotazioni incrementale.

  • Cache di configurazione: questo avviso viene visualizzato se la memorizzazione nella cache della configurazione non è abilitata per il progetto. L'Analizzatore di build illustra una sequenza di build per verificare se il tuo progetto è compatibile con la memorizzazione nella cache della configurazione. Se i controlli di compatibilità hanno esito positivo, puoi attivare la memorizzazione nella cache della configurazione dall'Analizzatore build.

  • Check Jetifier: questo avviso viene visualizzato se il flag enableJetifier è presente e abilitato nel tuo progetto, ovvero se è presente android.enableJetifier=true nel file gradle.properties. L'analizzatore build può eseguire un controllo per verificare se è possibile rimuovere il flag in modo sicuro per consentire al progetto di migliorare le prestazioni della build ed eseguire la migrazione dalle librerie dell'Assistenza Android non gestite.

Controlla l'impatto dei download

L'analizzatore build fornisce un riepilogo del tempo dedicato al download delle dipendenze e una visualizzazione dettagliata dei download per repository. Per verificare l'impatto dei download, seleziona Download dal menu a discesa. Queste informazioni sono disponibili anche nella finestra Sincronizzazione.

Puoi utilizzare queste informazioni per determinare se i download imprevisti delle dipendenze influiscono negativamente sulle prestazioni della build. Ciò è particolarmente importante durante le build incrementali, che non dovrebbero scaricare costantemente gli artefatti.

In particolare, puoi utilizzare queste informazioni per identificare problemi di configurazione, ad esempio l'utilizzo di versioni dinamiche delle dipendenze che causano download imprevisti. Inoltre, un numero elevato di richieste non riuscite per un repository specifico potrebbe indicare che il repository deve essere rimosso o spostato più in basso nella configurazione del repository.

Figura 5. Lo strumento di analisi della build mostra l'impatto dei download sulla durata della build.

[Solo Windows] Controllare l'impatto del software antivirus

Lo strumento di analisi build ti informa se il software antivirus potrebbe influire sulle prestazioni della build. Questo può accadere se un software antivirus, come Windows Defender, esegue l'analisi in tempo reale delle directory utilizzate da Gradle. L'analizzatore build consiglia un elenco di directory da escludere dalla scansione attiva e, se possibile, offre un link per aggiungerle all'elenco di esclusione delle cartelle di Windows Defender.