Analizza il consumo energetico con lo storico della batteria

Lo strumento Battery Historian fornisce informazioni sul consumo della batteria di un dispositivo nel tempo. A livello di sistema, lo strumento visualizza gli eventi relativi all'alimentazione dai log di sistema in una rappresentazione HTML. A livello specifico dell'app, lo strumento fornisce una varietà di dati che possono aiutarti a identificare il comportamento delle app che consumano molta batteria.

Questo documento descrive alcuni modi in cui puoi utilizzare Battery Historian per scoprire i modelli di consumo della batteria. Il documento inizia spiegando come leggere i dati a livello di sistema segnalati da Battery Historian. Dopodiché illustra i modi in cui puoi utilizzare Battery Historian per diagnosticare e risolvere i problemi relativi al comportamento della tua app relativo al consumo della batteria. Infine, offre diversi suggerimenti su scenari in cui Battery Historian potrebbe essere particolarmente utile.

Utilizzare la visualizzazione a livello di sistema

Lo strumento Battery Historian fornisce una visualizzazione a livello di sistema di vari comportamenti di app e sistemi, insieme alla loro correlazione con il consumo della batteria nel tempo. Questa visualizzazione, mostrata nella Figura 1, può aiutarti a diagnosticare e identificare i problemi di consumo energetico della tua app.

Visualizzazione di Battery Historian degli eventi a livello di sistema che influiscono sul consumo energetico.
Figura 1. Visualizzazione di Battery Historian degli eventi a livello di sistema che incidono sul consumo energetico.

Di particolare interesse in questa figura è la linea di tendenza nera, orizzontale e discendente, che rappresenta il livello della batteria, misurato sull'asse y. Ad esempio, all'inizio della riga del livello della batteria, intorno alle 06:50, la visualizzazione mostra un calo relativamente forte del livello della batteria.

La figura 2 mostra un primo piano di quella parte del display.

Primo piano della sequenza temporale della cronologia della batteria, dalle 6:50 alle 7:20 circa.
Figura 2. Un primo piano della sequenza temporale di Battery Historian dalle 6:50 alle 7:20 circa.

All'inizio della linea relativa al livello della batteria, a mano a mano che la batteria diminuisce bruscamente, il display mostra tre eventi: la CPU è in esecuzione, un'app ha acquisito un wakelock e lo schermo è acceso. In questo modo, Battery Historian ti aiuta a capire quali eventi si verificano quando il consumo della batteria è elevato. Puoi quindi scegliere come target questi comportamenti nella tua app e scoprire se è possibile eseguire ottimizzazioni correlate.

La visualizzazione a livello di sistema può anche fornire altri indizi. Ad esempio, se mostra che la radio mobile viene spesso disattivata e accesa, potrebbe esserci la possibilità di ottimizzare questo comportamento tramite API di pianificazione intelligenti come JobScheduler o Firebase Job Dispatcher.

La sezione successiva spiega come esaminare comportamenti ed eventi specifici della tua app.

Visualizzare dati specifici dell'app

Oltre ai dati a livello di macro forniti dalla visualizzazione a livello di sistema, Battery Historian fornisce anche tabelle e alcune visualizzazioni di dati specifici per ogni app in esecuzione sul dispositivo. I dati tabulari includono:

  • Consumo energetico stimato dell'app sul dispositivo.
  • Informazioni sulla rete.
  • Wakelock.
  • Servizi.
  • Informazioni sul processo.

Le tabelle forniscono due dimensioni di dati sulla tua app. Innanzitutto, puoi controllare il ranking del tuo utilizzo dell'app rispetto ad altre app. A questo scopo, fai clic sulla tabella Stime dell'alimentazione del dispositivo in Tabelle. Questo esempio esamina un'app immaginaria chiamata Pug Power.

Consente di capire quali app consumano più energia.
Figura 3. Consente di capire quali app consumano più energia.

La tabella nella Figura 3 mostra che Pug Power è il nono maggiore consumatore di energia a batteria di questo dispositivo e la terza app più grande che non fa parte del sistema operativo. Questi dati suggeriscono che questa app richiede un'indagine più approfondita.

Per cercare i dati di un'app specifica, inserisci il nome del pacchetto nella parte inferiore dei due menu a discesa in Selezione app, che si trova sotto il lato sinistro della visualizzazione.

Inserisci un'app specifica di cui visualizzare i dati.
Figura 4. Inserisci un'app specifica di cui visualizzare i dati.

Quando selezioni un'app specifica, le seguenti categorie di visualizzazione dei dati cambiano in modo da mostrare dati specifici dell'app anziché quelli a livello di sistema:

  • SyncManager.
  • Processo in primo piano.
  • Wakelock dello spazio utente.
  • App in evidenza.
  • JobScheduler.
  • Processo responsabile attività

Le visualizzazioni SyncManager e JobScheduler rendono immediatamente evidente se la tua app esegue sincronizzazioni ed esegue job più spesso del necessario. In questo modo, possono rivelare rapidamente la possibilità di ottimizzare il comportamento della tua app per migliorare le prestazioni della batteria.

Puoi anche ottenere un altro dato di visualizzazione specifico per l'app, Userspace Wakelock. Per includere queste informazioni nella segnalazione di bug, inserisci il seguente comando nella finestra del terminale:

$ adb shell dumpsys batterystats --enable full-wake-history

Le figure 5 e 6 mostrano i dati relativi a Pug Power: la figura 5 mostra la visualizzazione dei dati specifici dell'app e la figura 6 mostra i dati tabulari corrispondenti.

Visualizzazione dei dati relativi all'app fittizia Pug Power.
Figura 5. Visualizzazione dei dati relativi all'app fittizia Pug Power.


Dati tabulari per l'app immaginaria Pug Power.

Figura 6. Dati tabulari per l'app immaginaria Pug Power.

Uno sguardo alla visualizzazione non mostra nulla di immediatamente evidente. La riga JobScheduler indica che l'app non ha job pianificati. La riga SyncManager indica che l'app non ha eseguito sincronizzazioni.

Tuttavia, l'esame del segmento Wakelock dei dati tabulari mostra che Pug Power acquisisce wakelock per un totale di oltre un'ora. Questo comportamento insolito e costoso può tenere conto dell'elevato livello di consumo energetico dell'app. Queste informazioni aiutano lo sviluppatore a scegliere come target un'area in cui l'ottimizzazione ha maggiori probabilità di essere di grande aiuto. In questo caso, perché l'app acquisisce così tanto tempo di wakelock e come può lo sviluppatore migliorare questo comportamento?

Altri casi in cui può essere utile Battery Historian

In molti altri casi, Battery Historian può aiutarti a diagnosticare le opportunità di migliorare il comportamento della batteria. Ad esempio, Battery Historian può dirti se la tua app è:

  • Attivazione eccessiva delle sveglie sveglia (ogni 10 secondi o meno).
  • Tieni premuto continuamente un blocco GPS.
  • Programmazione dei job ogni 30 secondi o meno.
  • La programmazione si sincronizza ogni 30 secondi o meno.
  • Utilizzo della radio cellulare più spesso del previsto.