Profila le prestazioni dell'app

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.

Tabella 1. Riepilogo delle principali differenze tra le app di cui è possibile eseguire il debug e quelle che possono essere profilate.
Funzionalità Di cui è possibile eseguire il debug Profilabile
Profilo memoria Schermo intero

Sì:

No.

Profilo CPU Schermo intero

Sì:

No.

Profilo di rete No
Profilo energetico No
Profilo di alimentazione
Monitoraggio eventi 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.
  • Profilo "app" con overhead ridotto, la CPU e la memoria vengono avviate profiler. Nel profiler di memoria, solo Registra allocazioni native sia abilitato.

    Profilazione con overhead ridotto.
  • Profilo "app" con dati completi avvia CPU, memoria e Profiler dell'energia.

    Profilazione con dati completi.

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:

  1. 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
              }
            }
          
  2. In Android Studio, seleziona Crea > Seleziona Variante build... e scegli il di lancio.

Cambia release in profilabile

  1. 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"/>

  2. 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:

  1. Avvia l'app dall'emulatore di sviluppo o dal dispositivo.

  2. In Android Studio, avvia profiler selezionando Visualizza > Finestre degli strumenti > Profiler.

  3. Una volta avviata l'applicazione, fai clic sull'icona Pulsante Più dei profiler nel profiler per vedere il menu a discesa. Seleziona il tuo dispositivo, quindi dell'applicazione in Altri processi profilabili.

    Menu del profilo
  4. Il profiler deve collegarsi all'applicazione. Sono disponibili solo i profiler di CPU e memoria, con funzionalità limitate per Memory Profiler.

    Visualizzazione sessione profilabile
    Menu del profilo
    Menu del profilo

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
di Gemini Advanced.

Per attivare il supporto aggiuntivo per i dispositivi meno recenti, svolgi i seguenti passaggi:

  1. Seleziona Esegui > Modifica configurazioni.
  2. Seleziona il modulo dell'app nel riquadro a sinistra.
  3. Fai clic sulla scheda Profilazione e seleziona Abilita supporto aggiuntivo per dispositivi meno recenti (livello API < 26).
  4. 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:

  1. Assicurati che il profiler non sia attualmente in esecuzione in Android Studio.
  2. 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.

  3. A seconda del sistema operativo, esegui profiler.exe o profiler.sh. Android Viene visualizzata la schermata iniziale di Studio. Quando la schermata iniziale scompare, si apre una finestra del profiler.