Ottimizza il consumo di energia per la tua app

Questo documento descrive le best practice su come ottimizzare l'alimentazione. per il consumo in un'app di navigazione mobile creata utilizzando SDK di navigazione. Allo stesso tempo, descrive i compromessi valutate quando adottiamo queste pratiche. In particolare, il presente documento tratta le seguenti:

  • Fonti di consumo energetico elevato, classificate dalla più alta alla più bassa.
  • Strategie per ottimizzare il consumo energetico, in ordine di importanza, a partire dalla frequenza fotogrammi.
  • Strategie per utenti finali per istruire gli utenti dell'app a gestire la propria l'utilizzo del dispositivo durante la navigazione.

Perché ottimizzare l'app di navigazione?

A seconda della loro situazione, gli utenti della tua app potrebbero eseguire indicazioni di navigazione per per lunghi periodi di tempo. Ad esempio, il corriere e i corrieri possono lavorare a lungo ore, svolgendo compiti in un territorio sconosciuto. In questi casi, si affidano molto sulle indicazioni passo passo delle app in-app. Questo determina alcuni problemi tipici:

  • Consumo della batteria e disponibilità di caricabatterie. L'utilizzo intensivo della navigazione può si scaricano più velocemente del previsto dalle batterie dei dispositivi. Sebbene molti utenti possano risolvere questo problema caricando il dispositivo nel veicolo, i conducenti in due ruote non possono.
  • Limitazione del dispositivo dovuta al calore. Anche gli utenti che ricaricano continuamente dispositivo potrebbe riscontrare problemi. Elevato consumo energetico per lunghi periodi di tempo il surriscaldamento del dispositivo causa una limitazione termica e una conseguente perdita di rendimento.

Le app di navigazione passo passo si basano su funzioni ad alto consumo energetico come schermo, GPS, e la comunicazione radio con le torri cellulari, quindi è buona norma ottimizzare il consumo di energia della tua app mobile. Inoltre, dovresti considerare la potenza esigenze di utilizzo del pubblico di destinazione in modo da poter effettuare compromessi tra prestazioni e ottimizzazione del consumo energetico.

Cosa consuma più energia?

Questa sezione divide le attività in-app associate ad alta potenza il consumo in due categorie:

  • Rendering schermo
  • Aggiornamenti posizione

Rendering schermo

Il rendering dello schermo di solito causa il massimo consumo energetico sui dispositivi mobili app di navigazione. Ogni volta che il dispositivo disegna una mappa e altri elementi UI sul schermo, si basa sull'elaborazione di GPU e CPU. Analogamente, quando l'utente esce che lo schermo rimane acceso per lunghi periodi, consumando più energia.

In una certa misura, possono essere previsti consumi elevati di corrente da parte di conducenti o passeggeri che si affidano a una mappa visibile per navigare, soprattutto se usano continuamente l'app. per molte ore. In questo scenario, l'app esegue anche una percentuale di rendering più elevata. sullo schermo, perché la mappa si aggiorna in tempo reale. In alcuni casi, schermo può ridisegnato in modo quasi continuo, soprattutto quando l'utente guida da da un luogo all'altro senza fermarsi.

Aggiornamenti posizione

Oltre al rendering dello schermo, altre due attività di navigazione utilizzano il dispositivo potenza:

  • Segnali radiotrasmettitori e utilizzo del GPS
  • Aggiornamenti e condivisione della posizione, ad esempio per fornire un orario di arrivo stimato o segnalare le posizioni di un veicolo in una flotta.

Le comunicazioni via GPS e radio cellulare si basano entrambi su operazioni di avvio che richiedono molta energia: il GPS deve trovare i satelliti e i segnali radio cellulari devono negoziare con torri e stabilire una connessione. Per questi motivi, essenzialmente funzionano ininterrottamente durante la navigazione, anche se i segnali radio cellulari rimangono attivi per 20-30 secondi in di minimizzare i costi di avvio. Queste impostazioni sono controllate dal sistema operativo che non puoi facilmente configurare nella tua app.

Per gli aggiornamenti della posizione, il consumo di energia varia in base a fattori imprevedibili. Per Ad esempio, la distanza tra il dispositivo e la base cellulare determina il consumo di energia, poiché il dispositivo userà il segnale minimo necessario per continuare la navigazione per evitare di cambiare torri. Pertanto, un dispositivo la navigazione in un'area con scarsa connettività consuma più energia di una si trova nelle vicinanze di una stazione di base. Inoltre, alcune app potrebbero condividere aggiornamenti sulla posizione con un servizio di gestione della flotta centrale e, di conseguenza, dovrà comunicare con un server.

Ottimizzare il consumo di energia della tua app

Il problema dell'ottimizzazione del consumo energetico nelle app di navigazione è che queste app dipendono risorse che consumano molta energia, il che limita le opzioni a tua disposizione per impatto senza scendere a compromessi, come la limitazione dell'uso dello schermo. Questo fornisce un elenco di approcci che puoi adottare per ottimizzare la tua app, in ordine di importanza, da quella con l'impatto maggiore a quella minore.

Modificare la frequenza fotogrammi

La schermata aggiorna ciò che viene visualizzato con una frequenza nota come frequenza fotogrammi. In genere, la frequenza fotogrammi viene misurata in f/s (frame al secondo). Poiché il rendering dello schermo utilizza molta CPU o GPU, puoi ridurre la frequenza fotogrammi per risparmiare energia il consumo eccessivo.

Lo svantaggio nella riduzione della frequenza fotogrammi è che il rendering dello schermo può apparire meno spesso senza problemi, soprattutto se la mappa si aggiorna di frequente. Questo potrebbe essere più ovvio quando la mappa viene ingrandita per mostrare dettagli elevati, mentre l'utente si sposta alle alta velocità o quando la velocità o la direzione di marcia vengono modificate molto.

Sui dispositivi iOS, Maps SDK for iOS espone le preferredFrameRate per controllare la frequenza fotogrammi. La tabella di seguito mostra i valori dell'enumeratore GMSFrameRate che puoi modificare:

kGMSFrameRatePowerSave

Utilizza la frequenza fotogrammi minima per consumare meno batteria.

kGMSFrameRateConservative

Utilizza una frequenza fotogrammi mediana per fornire un rendering più fluido e ridurre i cicli di elaborazione.

kGMSFrameRateMaximum

Utilizzare la frequenza fotogrammi massima di un dispositivo.

Per i dispositivi di fascia bassa la velocità è di 30 f/s. o dispositivi di fascia alta è a 60 f/s.

Come riferimento, consulta GMSFrameRate nell'SDK di navigazione Google. per iOS.

Anche se non è possibile controllare il modo in cui l'utente finale imposta la luminosità o la luminosità dello schermo del dispositivo per quanto tempo lo schermo rimane acceso, puoi offrire un'opzione per la navigazione guida senza una mappa. Ciò consente all'utente finale di scegliere tale opzione in per conservare energia. Ad esempio, se i conducenti lavorano regolarmente quartiere, potrebbero non aver bisogno di una guida basata sulle mappe altrettanto spesso. Navigazione senza una mappa possono essere abilitati l'impostazione di una destinazione e le indicazioni iniziali. nell'SDK di navigazione ma non la visualizzazione di una mappa.

Aggiungi una riga di codice per nascondere GMSMapView:

mapView.isHidden = true

L'SDK di navigazione continuerà ad aggiornare le posizioni delle strade agganciate, l'orario di arrivo stimato e distanza di viaggio rimanente e la tua app può comunque abbonarsi a tutti i eventi generati dall'SDK mentre il conducente procede. Ciò non è appropriato per tutti i casi d'uso e non è un buon consiglio nei casi in cui il conducente abbia bisogno di vedere la mappa e seguire una guida visiva. I seguenti screenshot illustrano un confronto affiancato. attivare/disattivare le visualizzazioni delle mappe durante la navigazione attiva.

App demo in esecuzione con la visualizzazione mappa visibile.
Figura 1.SDK di navigazione app demo per iOS che mostra la demo di Data Back
App demo in esecuzione senza visualizzazione mappa visibile.
Figura 2.App demo in esecuzione senza visualizzazione mappa visibile. Tieni presente che il tempo rimanente, la distanza e la posizione della strada sono ancora in fase di aggiornamento.

Usa uno stile mappa scuro

Prova a definire lo stile della mappa in modo da utilizzare un tema scuro per ridurre la quantità di energia necessarie per il rendering della mappa sullo schermo.

L'SDK di navigazione esegue il rendering delle proprie mappe utilizzando Google Maps SDK per iOS che contengono opzioni per definire le visualizzazioni delle mappe non di navigazione nella tua app. La visualizzazione di navigazione supporta l'applicazione forzata della modalità Buio. Ciò potrebbe non influire su tutti i dispositivi nello stesso modo a causa a differenze nel tipo di schermo, ma consente potenziali risparmi di energia nelle in alcuni casi. Uno studio recente ha rilevato che la quantità di energia salvato dalla modalità Buio su alcuni schermi dipende dalla luminosità iniziale dello schermo con. Ad esempio, la modalità Buio risparmia più energia sugli schermi impostati alla massima luminosità rispetto agli schermi la cui luminosità è già regolata tra il 30 e il 50% massimo. È importante considerare questo aspetto quando usi la modalità Buio per le tue app, perché il risparmio energetico sarà relativo al modo in cui l'utente finale imposta lo schermo luminosità.

Per scoprire di più sulla modifica dell'interfaccia utente di navigazione, vedi Modifica l'interfaccia utente di navigazione.

Screenshot dell'SDK di navigazione in esecuzione su un iPhone 15 Pro con uno stile mappa scuro.
Figura 3.SDK di navigazione configurato con uno stile mappa scura
Configura il tuo GMSMapView con un mapID che rappresenta uno stile di mappa basato su Cloud definito nel tuo progetto.

La personalizzazione delle mappe basata su cloud richiede un ID mappa che rappresenti una mappa lato server personalizzata creata nel progetto della console Google. Per maggiori informazioni informazioni sulla creazione di un ID mappa, consulta lo sviluppatore dell'ID mappa documentazione. Per ulteriori dettagli sulla progettazione e il deployment Per gli stili di mappa basati su cloud consulta la documentazione per gli sviluppatori sulla creazione e gestione Stili di mappe basati su cloud.

Modificare la frequenza di aggiornamento della posizione GPS

Quando valuti il consumo di energia derivante dagli aggiornamenti di posizione inviati dal dispositivo, concentrati più sulla frequenza degli aggiornamenti della posizione piuttosto che sulla quantità di dati inviati la trasmissione.

Non è un aspetto che puoi controllare direttamente SDK di navigazione di Google. Lo stesso consiglio vale per l'utilizzo di fonti di localizzazione non GPS (cella e Wi-Fi).

Informa gli utenti

Gli utenti della tua app potrebbero voler sapere come ottimizzare la loro potenza il consumo eccessivo. Per aiutarlo a ridurre il consumo di corrente delle app, consiglia di fare quanto segue:

  • Blocca lo smartphone
  • Imposta l'app di navigazione in background
  • Se possibile, utilizza la navigazione senza mappa
  • Riduci la luminosità dello schermo utilizzando la modalità Buio per OLED e AMOLED schermate o attivando la luminosità adattiva
  • Evitare che il dispositivo si surriscaldi
  • Connettiti alla rete Wi-Fi del veicolo, se disponibile

Misurare il consumo energetico

Puoi utilizzare strumenti di livello professionale per misurare il consumo energetico, ma spesso è difficile o costoso ottenerli. App e strumenti di profilazione IDE come Power Profiler in Android Studio e il riquadro Utilizzo della batteria in XCode L'organizzatore misura il consumo energetico, ma può essere difficile rimuovere l'effetto dei processi in background o impostare una base di riferimento per le prestazioni misurati. In alcuni casi, le limitazioni del dispositivo potrebbero impedire l'accesso ai dati necessari.

Puoi utilizzare hardware di monitoraggio dell'alimentazione per scopi specifici e modificare della batteria e prodotti e servizi commerciali disponibili per aiutarti a farlo. Tieni presente che tale modifica può comportare l'annullamento la garanzia del dispositivo.