Le prestazioni di un'app sono considerate scarse se risponde lentamente, mostra animazioni discontinue si blocca o consuma troppa energia. La risoluzione dei problemi di rendimento implica l'identificazione delle aree in In cui l'app fa un uso inefficiente di risorse come CPU, memoria, grafica, rete o la batteria del dispositivo.
Per individuare e risolvere questi problemi, utilizza gli strumenti e le tecniche di profilazione e benchmarking descritti in questo argomento. Imparare tecniche per misurare il rendimento ed esempi di come utilizzarli tecniche per risolvere problemi specifici, consulta la sezione Misurazione del rendimento.
Android Studio offre diversi strumenti di profilazione per aiutarti a individuare e visualizzare potenziali problemi:
- Profiler CPU consente di rintracciare i problemi di prestazioni di runtime.
- Il profiler di memoria consente di tenere traccia delle allocazioni della memoria.
- Profilo energetico monitora il consumo di energia, che può contribuire alla batteria drenare.
Questi strumenti sono compatibili con Android 5.0 (livello API 21) e versioni successive. Per ulteriori informazioni gli 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 casi d'uso importanti relativi alle prestazioni, tra cui l'avvio dell'applicazione e ridisegno che viene attivato da azioni come le animazioni dell'interfaccia utente o lo scorrimento.
- Microbenchmark: misura il costo della CPU di funzioni specifiche.
Per scoprire di più su queste librerie, consulta lo strumento Benchmark della tua app.
Applicazioni profilabili
Profileable
è un file manifest
aggiunta in Android Q. Può specificare se l'utente
del dispositivo possono profilare questa applicazione tramite strumenti quali Android Studio, Simpleperf e
Perfetto.
Prima del giorno profileable
, la maggior parte degli sviluppatori poteva solo profilare
App di cui è possibile eseguire il debug su Android, con un conseguente aumento dei costi per le prestazioni
come effetto collaterale. Questi costi delle prestazioni potrebbero invalidare i risultati della profilazione, soprattutto se
in relazione ai tempi. La tabella 1 riassume le differenze tra possibilità di debug e profilabile
app.
Funzionalità | Di cui è possibile eseguire il debug | Profilabile |
---|---|---|
Profilo memoria | Schermo intero |
Sì: No.
|
Profilo CPU | Schermo intero |
Sì:
No.
|
Profilo di rete | Sì | No |
Profilo energetico | Sì | No |
Profilo di alimentazione | Sì | Sì |
Monitoraggio eventi | Sì | No |
È stata introdotta la funzionalità Profileable
per consentire agli sviluppatori di consentire l'esposizione delle loro app
le informazioni agli strumenti di profilazione, con costi per le prestazioni molto ridotti. Un APK profilabile
è essenzialmente un APK di release con una riga di <profileable android:shell="true"/>
aggiunti 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
dispositivo di test virtuale o fisico con livello API 29 o versioni successive e con Google Play. Per utilizzare
funzionalità, fai clic sulla freccia accanto all'icona dell'app Profilo
e scegli tra due opzioni:
![Menu di creazione profilabile con un solo clic.](https://developer.android.com/static/studio/images/one-click-profileable-build-menu.png?authuser=9&hl=it)
Profilo "app" con overhead ridotto, la CPU e la memoria vengono avviate profiler. Nel profiler di memoria, solo Registra allocazioni native sia abilitato.
Profilo "app" con dati completi avvia CPU, memoria e Profiler dell'energia.
Crea ed esegui manualmente un'app profilabile
Per creare manualmente un'applicazione profilabile, devi prima creare un'applicazione di rilascio e aggiornare il relativo file manifest, che trasforma l'applicazione di release in un'applicazione profilabile. Dopo aver configurato l'applicazione profilabile, avvia il profiler e seleziona un profilo processo da analizzare.
Crea un'app di release
Per creare un'applicazione di release per la profilazione, segui questi passaggi:
-
Firma l'applicazione con la chiave di debug aggiungendo le righe seguenti al file
build.gradle
. Se hai già una variante di build della release funzionante, puoi vai al passaggio successivo.buildTypes { release { signingConfig signingConfigs.debug } }
-
In Android Studio, seleziona Crea > Seleziona Variante build... e scegli il di lancio.
Cambia release in profilabile
-
Converti la tua applicazione di release dall'alto in un'applicazione profilabile aprendo la
AndroidManifest.xml
file e aggiungendo quanto segue all'interno<application>
. Per ulteriori dettagli, vedi Creazione dell'applicazione per il rilascio.<profileable android:shell="true"/>
-
A seconda della versione dell'SDK, potrebbe essere necessario aggiungere le seguenti righe al campo
build.gradle
.aaptOptions { additionalParameters =["--warn-manifest-validation"] }
Profilare un'app profilabile
Per profilare un'app profilabile, procedi nel seguente modo:
-
Avvia l'app dall'emulatore di sviluppo o dal dispositivo.
-
In Android Studio, avvia profiler selezionando Visualizza > Finestre degli strumenti > Profiler.
-
Una volta avviata l'applicazione, fai clic sull'icona
nel profiler per vedere il menu a discesa. Seleziona il tuo dispositivo, quindi dell'applicazione in Altri processi profilabili.
-
Il profiler deve collegarsi all'applicazione. Sono disponibili solo i profiler di CPU e memoria, con funzionalità limitate per 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 uno all'altro, puoi confrontare l'utilizzo delle risorse in vari scenari.
- Per avviare una nuova sessione, fai clic su Avvia una nuova sessione di profilazione
Pulsante
e seleziona un processo dell'app dal menu a discesa visualizzato.
- Quando registrare una traccia o acquisisci un dump dell'heap, Android Studio aggiunge questi dati (insieme alla rete dell'app) attività) come voce separata per la sessione corrente.
- Per interrompere l'aggiunta di dati alla sessione corrente, fai clic su Interrompi la sessione corrente.
sessione di profilazione
.
- Per importare una traccia esportata da un'esecuzione precedente di Android Studio, fai clic su
Avvia nuova sessione profiler
e scegli Carica da file.
Attiva il supporto aggiuntivo per i dispositivi meno recenti (livello API < 26)
Per visualizzare 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 le seguenti:
- La sequenza temporale degli eventi in tutte le finestre del profiler
- Il numero di oggetti allocati in Memory Profiler
- Eventi di garbage collection in Memory Profiler
- Dettagli su tutti i file trasmessi in Network Profiler
Per attivare il supporto aggiuntivo per i dispositivi meno recenti, svolgi i seguenti passaggi:
- Seleziona Esegui > Modifica configurazioni.
- Seleziona il modulo dell'app nel riquadro a sinistra.
- Fai clic sulla scheda Profilazione e seleziona Abilita supporto aggiuntivo per dispositivi meno recenti (livello API < 26).
- Crea ed esegui di nuovo l'app.
Se abiliti il supporto aggiuntivo per i dispositivi meno recenti, il processo di compilazione più lentamente, quindi dovresti attivarla solo quando vuoi iniziare a profilare la tua app.
Esegui profiler autonomi
I Profiler di Android Studio autonomi ti consentono di profilare la tua app senza utilizzare l'app Android completa nell'IDE di Studio.
Per eseguire i profiler autonomi, segui questi passaggi:
- Assicurati che il profiler non sia attualmente in esecuzione in Android Studio.
Vai alla directory di installazione e vai alla directory
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
. Android Viene visualizzata la schermata iniziale di Studio. Quando la schermata iniziale scompare, si apre una finestra del profiler.