Un'app ha prestazioni di scarso rendimento se risponde lentamente, mostra animazioni discontinue, blocchi o consuma troppa energia. La risoluzione dei problemi di prestazioni comporta l'identificazione di aree in cui la tua app utilizza in modo inefficiente risorse come CPU, memoria, grafica, rete o la batteria del dispositivo.
Per trovare e risolvere questi problemi, utilizza gli strumenti di profilazione e benchmarking descritti in questo argomento. Per tecniche di misurazione delle prestazioni ed esempi di come utilizzare queste tecniche per risolvere problemi specifici, consulta Misurare le prestazioni.
Android Studio offre diversi strumenti di profilazione per aiutarti a trovare e visualizzare i potenziali problemi:
- Profiler CPU consente di individuare eventuali problemi di prestazioni del runtime.
- Memory Profiler consente di monitorare le allocazioni della memoria.
- Un profilo di energia monitora il consumo energetico, il che può contribuire al consumo della batteria.
Questi strumenti sono compatibili con Android 5.0 (livello API 21) e versioni successive. Per ulteriori informazioni sugli strumenti, consulta le altre pagine di questa sezione della guida dell'utente.
Le librerie Jetpack Benchmark consentono alla tua applicazione di misurare varie operazioni importanti:
- Macrobenchmark: misura i casi d'uso importanti relativi alle prestazioni, inclusi l'avvio e il riprogettazione dell'applicazione attivati da azioni quali animazioni nell'interfaccia utente o scorrimento.
- Microbenchmark: misura il costo della CPU di funzioni specifiche.
Per scoprire di più su queste librerie, consulta la pagina Benchmark della tua app.
Applicazioni profilate
Profileable
è una configurazione del file manifest introdotta in Android Q. Può specificare se l'utente del dispositivo può profilare questa applicazione tramite strumenti come Android Studio, Simpleperf e Perfetto.
Prima del giorno profileable
, la maggior parte degli sviluppatori poteva creare un profilo solo sulle app debuggable su Android, il che comportava un significativo aumento dei costi delle prestazioni come effetto collaterale. Questi costi di prestazioni potrebbero invalidare i risultati della profilazione, soprattutto se erano correlati ai tempi. La tabella 1 riassume le differenze tra le app di cui è possibile eseguire il debug e il profilo.
Funzionalità | Debug | Profilabile |
---|---|---|
Memory Profiler | Intero |
Sì: No:
|
Profilo di CPU | Intero |
Sì:
No:
|
Network Profiler | Sì | No |
Profilo dell'energia | Sì | No |
Power Profiler | Sì | Sì |
Monitoraggio eventi | Sì | No |
È stato introdotto Profileable
per consentire agli sviluppatori di scegliere se consentire alle loro app di esporre informazioni agli strumenti di profilazione, riducendo al contempo i costi di prestazioni minimi. Un APK profilato
è essenzialmente un APK di rilascio con una riga <profileable android:shell="true"/>
aggiunta nella sezione <application>
del file manifest.
Crea ed esegui automaticamente un'app profilabile
Puoi configurare, creare ed eseguire un'app profilabile con un solo clic. Questa funzionalità richiede un
dispositivo di test fisico o virtuale con livello API 29 o versioni successive e dotato di Google Play. Per utilizzare la funzionalità, fai clic sulla freccia accanto all'icona App profilo e scegli tra due opzioni:

L'app del profilo con overhead basso avvia i profili di CPU e memoria. Nel Profiler di memoria, è abilitata solo l'opzione Registra allocazioni native.
L'app del profilo con dati completi avvia i profili di CPU, memoria ed energia.
Creare ed eseguire manualmente un'app profilabile
Per creare manualmente un'applicazione di profilo, devi prima creare un'applicazione di rilascio e quindi aggiornare il relativo file manifest, in modo da trasformarla in un'applicazione profilabile. Dopo aver configurato l'applicazione profilabile, avvia il profiler e seleziona un processo profilabile da analizzare.
Crea un'app di rilascio
Per creare un'applicazione di rilascio ai fini della profilazione, procedi nel seguente modo:
-
Firma l'applicazione con la chiave di debug aggiungendo le righe seguenti al file
build.gradle
dell'applicazione. Se hai già una variante funzionante della build della release, puoi andare al passaggio successivo.buildTypes { release { signingConfig signingConfigs.debug } }
-
In Android Studio, seleziona Crea > Seleziona variante di build... e scegli la variante di release.
Cambia release in profilo
-
Converti l'applicazione di rilascio dall'alto in un'applicazione profilabile aprendo il file
AndroidManifest.xml
e aggiungendo quanto segue all'interno di<application>
. Per maggiori dettagli, consulta la sezione Creazione dell'applicazione per il rilascio.<profileable android:shell="true"/>
-
A seconda della versione dell'SDK, potresti dover aggiungere le righe seguenti al file
build.gradle
dell'applicazione.aaptOptions { additionalParameters =["--warn-manifest-validation"] }
Profila un'app per cui è possibile creare un profilo
Per profilare un'app profilabile, procedi nel seguente modo:
-
Avvia l'app dall'emulatore o dal dispositivo di sviluppo.
-
In Android Studio, avvia il profiler selezionando Visualizza > Strumenti Windows > Profiler.
-
Dopo l'avvio dell'applicazione, fai clic sul pulsante
nel profiler per visualizzare il menu a discesa. Seleziona il tuo dispositivo, quindi seleziona la voce dell'applicazione in Altri processi profilabili.
-
Il Profiler deve collegare l'applicazione. Sono disponibili solo la CPU e i Memory Profiler, con capacità limitate per il Memory Profiler.
Sessioni
Puoi salvare i dati di Profiler come sessioni, che vengono conservati finché non esci da Android Studio. Registrando le informazioni di profilazione in più sessioni e passando da una all'altra, puoi confrontare l'utilizzo delle risorse in vari scenari.
- Per avviare una nuova sessione, fai clic sul pulsante Avvia una nuova sessione di profilazione
e seleziona un processo nell'app dal menu a discesa che viene visualizzato.
- Quando registrate una traccia o acquisisci un dump dell'heap, Android Studio aggiunge questi dati (insieme all'attività di rete dell'app) come voce separata alla sessione corrente.
- Per interrompere l'aggiunta di dati alla sessione attuale, fai clic su Interrompi la sessione di profilazione attuale
.
- Per importare una traccia esportata da un'esecuzione precedente di Android Studio, fai clic su
Avvia nuova sessione del profiler
e scegli Carica dal file.
Attiva ulteriore supporto per i dispositivi meno recenti (livello API < 26)
Per mostrarti dati di profilazione aggiuntivi quando esegui un dispositivo con Android 7.1 o versioni precedenti, Android Studio deve inserire la logica di monitoraggio nell'app compilata. Questi dati di profilazione aggiuntivi includono quanto segue:
- Cronologia degli eventi in tutte le finestre del Profiler
- Il numero di oggetti allocati in Memory Profiler
- Eventi di raccolta dei rifiuti in Memory Profiler
- Dettagli su tutti i file trasmessi in Network Profiler
Per attivare il supporto aggiuntivo per i dispositivi meno recenti, procedi nel seguente modo:
- Seleziona Esegui > Modifica configurazioni.
- Seleziona il modulo dell'app nel riquadro a sinistra.
- Fai clic sulla scheda Profilazione e seleziona Abilita il supporto aggiuntivo per i dispositivi meno recenti (livello API < 26).
- Crea ed esegui di nuovo l'app.
L'attivazione di un supporto aggiuntivo per i dispositivi meno recenti rende più lento il processo di compilazione, quindi dovresti attivarla soltanto quando vuoi iniziare a profilare la tua app.
Esegui profilatori autonomi
I profili di Android Studio autonomi ti consentono di profilare la tua app senza eseguire l'IDE completo di Android Studio.
Per eseguire i profili indipendenti, segui questi passaggi:
- Assicurati che il Profiler non sia attualmente in esecuzione in Android Studio.
Vai alla directory di installazione e vai a
bin
:Windows/Linux:
studio-installation-folder/bin
macOS: l'utilizzo di profiler autonomi non è supportato su macOS.
- A seconda del sistema operativo, esegui
profiler.exe
oprofiler.sh
. Viene visualizzata la schermata iniziale di Android Studio. Quando la schermata iniziale scompare, si apre una finestra del profilo.