Controllare il consumo energetico con Energy Profiler

Lo strumento Energy Profiler ti aiuta a scoprire dove la tua app consuma più energia del necessario.

Energy Profiler monitora l'utilizzo della CPU, del segnale radio di rete e del sensore GPS e mostra una visualizzazione della quantità di energia utilizzata da ciascuno di questi componenti. Profiler di energia mostra anche le occorrenze degli eventi di sistema (riventi rilevanti, allarmi, lavori e richieste di posizione) che possono influire sul consumo energetico.

Energy Profiler non misura direttamente il consumo energetico. Utilizza invece un modello che stima il consumo energetico per ogni risorsa sul dispositivo.

Panoramica di Energy Profiler

L'energia Profiler viene visualizzata come una riga nella finestra Profiler quando esegui l'app su un dispositivo connesso o su un emulatore Android con Android 8.0 (API 26) o versioni successive.

Per aprire Energy Profiler, procedi nel seguente modo:

  1. Seleziona Visualizza > Finestre degli strumenti > Profiler oppure fai clic su Profilo nella barra degli strumenti.

    Se richiesto dalla finestra di dialogo Seleziona destinazione del deployment, scegli il dispositivo su cui eseguire il deployment dell'app per la profilazione. Se hai collegato un dispositivo tramite USB, ma non lo trovi nell'elenco, assicurati di aver attivato il debug USB.

  2. Fai clic su un punto qualsiasi della sequenza temporale Energia per aprire Energy Profiler.

Quando lo apri, Energy Profiler inizia subito a visualizzare il consumo energetico stimato della tua app. Dovresti vedere qualcosa di simile alla figura 1.

Figura 1. Spostamenti in Energy Profiler.

Come indicato nella Figura 1, la visualizzazione predefinita per Energy Profiler include le seguenti tempistiche:

  1. Sequenza temporale degli eventi:mostra le attività nella tua app durante il passaggio attraverso stati diversi del loro ciclo di vita. Questa sequenza temporale indica anche le interazioni dell'utente con il dispositivo, inclusi gli eventi di rotazione dello schermo.
  2. Cronologia dei consumi energetici:mostra il consumo energetico stimato della tua app.
  3. Sequenza temporale del sistema:indica gli eventi di sistema che potrebbero influire sul consumo energetico.

Per visualizzare un'analisi del consumo energetico in base alle risorse di CPU, rete e posizione (GPS), nonché gli eventi di sistema pertinenti, posiziona il puntatore del mouse sopra una barra della sequenza temporale Energia.

Esaminare gli eventi di sistema: wakelock, job e sveglie

Puoi utilizzare Energy Profiler per trovare gli eventi di sistema che possono influire sul consumo energetico, inclusi wakelock, job e sveglie:

  • Un blocco di riattivazione è un meccanismo che mantiene la CPU o lo schermo attivi quando altrimenti il dispositivo entra in modalità di sospensione. Ad esempio, un'app che riproduce video potrebbe utilizzare un wakelock per mantenere lo schermo attivo quando l'utente non interagisce con il dispositivo. La richiesta di un wakelock non è un'azione che richiede molta energia, ma il mancato rilascio di un wakelock può causare la permanenza dello schermo o della CPU più a lungo del necessario, con un conseguente consumo rapido della batteria. Per ulteriori informazioni, consulta le indicazioni sull'utilizzo dei wakelock.

  • Puoi utilizzare le sveglie per eseguire a intervalli regolari attività in background fuori dal contesto della tua app. Quando una sveglia suona, il dispositivo potrebbe riattivare il dispositivo ed eseguire un codice che consuma molta energia. Per ulteriori informazioni, consulta le indicazioni relative all'utilizzo delle sveglie.

  • Puoi utilizzare i job per eseguire azioni in condizioni specifiche, ad esempio quando la rete diventa disponibile. Puoi creare job con JobBuilder e pianificarli con JobScheduler. In molti casi, l'approccio consigliato è utilizzare job con JobScheduler anziché sveglie o wakelock.

  • Le richieste di posizione utilizzano il sensore GPS, che può consumare quantità significative di energia. Per informazioni su come effettuare richieste di posizione a minor consumo energetico, vedi Ottimizzare la posizione per la batteria.

Energy Profiler ti consente di scoprire facilmente dove la tua app utilizza ognuna di queste funzionalità, in modo da poter prendere decisioni informate su come ognuna viene utilizzata.

Profiler energia mostra una barra codificata per colore nella sequenza temporale Sistema sotto la sequenza temporale Energia per l'intervallo di tempo in cui è attivo un evento di sistema. I wakelock sono rappresentati con una barra rossa, i processi e le sveglie con una barra gialla e gli eventi posizione con una barra viola chiaro.

La Figura 2 mostra l'Energy Profiler e l'editor di codice aperti al codice sorgente responsabile di un wakelock non rilasciato.

Figura 2. Utilizzo di Energy Profiler per trovare un wakelock.

  1. Per aprire il riquadro Evento di sistema e visualizzare i dettagli di eventi come i wakelock, seleziona un intervallo di tempo nella sequenza temporale Energia.
  2. Per aprire il riquadro Dettagli wakelock e visualizzare i dettagli di un wakelock specifico, seleziona il wakelock nel riquadro Evento di sistema.
  3. Per aprire l'editor di codice e passare al codice sorgente per un wakelock, fai doppio clic sulla voce del metodo di chiamata nella parte superiore dello stack di chiamate nel riquadro Dettagli wakelock.
  4. La chiamata per acquisire il wakelock è evidenziata nell'editor di origine.

Le istruzioni per mostrare i dettagli di altri eventi di sistema sono sostanzialmente le stesse dei wakelock, con informazioni specifiche per ciascun tipo di evento nel relativo riquadro dei dettagli. Ad esempio, il riquadro Dettagli job mostra gli stack di chiamate per le parti del codice in cui viene pianificato il job e dove viene completato.