Bateria
Performance
Mobile
Otimização
iOS
Android

Consumo della batteria nelle app: come ottimizzare le prestazioni mobili

Consumo della batteria nelle app: come ottimizzare le prestazioni mobili

La batteria è una risorsa preziosa nei dispositivi mobili. Le app che scaricano la batteria vengono disinstallate e scarsamente valutate. Questa guida presenta le cause dei consumi eccessivi e le tecniche per creare app ad alta efficienza energetica.

Perché la batteria è importante

Esperienza utente

Nessuno vuole un'app che uccida la batteria. La frustrazione porta alla disinstallazione.

Recensioni

La dicitura "Batteria scarica" appare spesso nelle recensioni negative.

Restrizioni di sistema

iOS e Android limitano le app che consumano troppo. Terminazione dello sfondo.

Cause del consumo eccessivo

Attività in background

Processi in esecuzione quando l'app non è in uso.

Posizione costante

Il GPS è uno dei maggiori consumatori. Utilizzare solo quando necessario.

Richieste di rete

Richieste frequenti, soprattutto a schermo spento.

Attiva i blocchi

Mantenere la CPU o lo schermo attivi in modo improprio.

Animazioni pesanti

Le animazioni complesse richiedono GPU. Utilizzare con parsimonia.

Elaborazione intensiva

Calcoli pesanti, decodifica multimediale.

Notifiche push eccessive

Ogni notifica riattiva il dispositivo.

Monitoraggio dei consumi

###Android

Storico della batteria, profiler di Android Studio.

###iOS

Indicatore di energia Xcode, registro energetico degli strumenti.

Metriche

Tempo della CPU, attività di rete, aggiornamenti di posizione, risvegli.

Ottimizzazione della rete

Raggruppamento

Raggruppa le richieste invece di farle una per una.

Compressione

Dati più piccoli = meno tempo di trasmissione.

Memorizzazione nella cache

Evita richieste ripetute. Caching aggressivo.

Precaricamento intelligente

Scarica i dati quando sei connesso e su Wi-Fi.

Backoff esponenziale

Gli errori non dovrebbero causare nuovi tentativi aggressivi.

Ottimizzazione della posizione

Precisione adeguata

Utilizzare la precisione minima necessaria. L'elevata precisione consuma molto.

Geofencing

Lascia che il sistema ti avvisi quando entri nella regione. Non sondaggi costantemente.

Cambiamenti significativi di posizione

Per iOS, un'alternativa efficiente agli aggiornamenti continui.

Provider di posizioni fuse

Per Android, bilancia precisione e consumo.

Interrompi quando non è necessario

Rimuovi gli ascoltatori quando non ti servono più.

Lavoro in background

###iOS

Aggiornamento dell'app in background limitato. BGTaskScheduler per le attività.

###Android

WorkManager per attività differibili. Rispettare la modalità Doze.

Principio generale

Fai il minimo necessario. Completa e dormi.

Evita i sondaggi

Utilizza push/websocket invece del polling costante.

Attiva i blocchi

Cosa sono

Impedisce la sospensione della CPU o dello schermo.

Rischi

Wakelock dimenticato = batteria scarica.

Buone pratiche

Riduci al minimo la durata, rilascia immediatamente, utilizza i timeout.

###Android

Preferisci JobScheduler o WorkManager.

Animazioni efficienti

Accelerazione hardware

Utilizzare quando possibile. GPU più efficiente della CPU per la grafica.

Frequenza fotogrammi

60fps sono fluidi, ma consumanti. Ridurre quando accettabile.

Animazioni fuori schermo

Metti in pausa le animazioni non visibili.

Lotti

Animazioni vettoriali efficienti.

##Rendering

Layout semplici

Le gerarchie profonde sono costose. Appiattire.

RecyclerView/Elenco

Ricicla le visualizzazioni. Non ricreare costantemente.

Sorpasso

Evitare di disegnare i pixel più volte. Ispezionare con strumenti.

Notifiche push

Priorità corretta

Priorità normale per i casi non urgenti. Batch sul server.

Carico utile ridotto

Meno dati = meno elaborazione.

Spinta silenziosa

Per la sincronizzazione in background. Non riattivare lo schermo inutilmente.

##Media

Codec efficiente

H.265/HEVC è più efficiente di H.264 in molti casi.

Risoluzione adeguata

Non decodificare 4K in miniatura.

Riproduzione

Pausa quando non visibile. Liberare risorse.

Sensori

Usalo su richiesta

Registra l'ascoltatore solo quando necessario.

Frequenza adatta

La frequenza più bassa possibile che soddisfi i requisiti.

Consegna in lotti

Letture di gruppo per meno risvegli.

Strumenti diagnostici

###Android

  • Storico della batteria
  • Profilo di Android Studio
  • Statistiche batteria dumpsys

###iOS

  • Organizzatore di energia Xcode
  • Strumenti (Registro energetico) -Kit metrico

Test

Scenari reali

Testare nell'uso reale, non solo in laboratorio.

Dispositivi vari

Le prestazioni variano tra i dispositivi.

Batteria scarica

Comportamento con 20%, 10%, 5%.

Sfondo esteso

Lascialo in background per ore. Misura.

API di sistema

###Android

  • Modalità Doze: rispetto, prova
  • App Standby Buckets: comprendi le categorie
  • Risparmio batteria: adatta il comportamento

###iOS

  • Modalità risparmio energetico: riduce l'attività
  • Aggiornamento app in background: rispetta le preferenze
  • BGTaskScheduler: per attività efficienti

Modalità oscura

Schermi OLED

I pixel neri sono disattivati. La modalità oscura salva.

Supporto nativo

Implementare le seguenti linee guida. Il sistema si adatta.

Errori comuni

GPS sempre attivo

Dimenticare di interrompere gli aggiornamenti sulla posizione.

Temporizzatore aggressivo

setInterval di 1 secondo non necessario.

Wake Lock trapelato

Non rilasciato in eccezioni o casi limite.

Debug in produzione

Log eccessivi, funzionalità di debug attivate.

Conclusione

L'ottimizzazione della batteria è responsabilità dello sviluppatore. Monitora i consumi, minimizza il background, utilizza API efficienti e testa in condizioni reali. Gli utenti ringraziano e restano.

##Domande frequenti

1) Come faccio a sapere se la mia app consuma molta batteria? Utilizzare strumenti di profilazione. Confronta con app simili.

2) Lo sfondo è il problema più grande? Spesso sì. L'attività a schermo spento è molto costosa.

3) Il GPS quanto consuma? È uno dei maggiori consumatori. Utilizzare la precisione minima richiesta.

4) La modalità Buio fa davvero risparmiare batteria? Sugli schermi OLED sì, in modo significativo. schermo LCD, no.

5) Come testare il consumo della batteria? Utilizza profiler, testa su dispositivi reali, simula un uso prolungato.

Leggi anche