Este documento descreve as práticas recomendadas para otimizar o consumo de energia em um app de navegação para dispositivos móveis criado com o SDK Navigation. Ao mesmo tempo, ele descreve as compensações a serem consideradas ao empregar essas práticas. Em especial, este documento aborda o seguinte:
- Fontes de alto consumo de energia, classificadas da maior para a menor.
- Estratégias para otimizar o consumo de energia, em ordem de importância, começando com a taxa de frames.
- Estratégias para usuários finais que ensinam os usuários do app a gerenciar o uso do dispositivo durante a navegação.
Por que otimizar seu app de navegação?
Dependendo da situação, os usuários do app podem executar a orientação de navegação por longos períodos. Por exemplo, motoristas e entregadores podem trabalhar por longas horas, concluindo tarefas em territórios desconhecidos. Nesses casos, eles dependem muito da orientação detalhada no app. Isso resulta em alguns problemas típicos:
- Consumo de bateria e disponibilidade de carregadores. O uso intenso da navegação pode fazer com que as baterias dos dispositivos descarreguem mais rápido do que o esperado. Embora muitos usuários possam resolver isso carregando o dispositivo no veículo, os condutores de veículos de duas rodas não podem.
- Limitação do dispositivo devido ao calor. Mesmo os usuários que carregam o dispositivo continuamente podem ter problemas. O alto consumo de energia por longos períodos pode fazer com que o dispositivo aqueça, resultando em limitação térmica e perda de desempenho subsequente.
Os apps de navegação curva a curva dependem de recursos que consomem muita energia, como tela, GPS e comunicação por rádio com torres de celular. Por isso, é uma prática recomendada otimizar o uso de energia do seu app para dispositivos móveis. Além disso, considere as necessidades de uso de energia do seu público-alvo para fazer as compensações adequadas entre desempenho e otimização do consumo de energia.
O que consome mais energia?
Esta seção divide as atividades no app associadas ao alto consumo de energia em duas categorias:
- Renderização da tela
- Atualizações de localização
Renderização da tela
A renderização da tela geralmente causa o maior consumo de energia em apps de navegação para dispositivos móveis. Sempre que o dispositivo desenha um mapa e outros elementos da interface na tela, ele depende do processamento da GPU e da CPU. Da mesma forma, quando o usuário deixa a tela ligada por longos períodos, isso também usa mais energia.
Em certa medida, é possível esperar um alto consumo de energia de motoristas ou passageiros que dependem de um mapa visível para navegar, principalmente se eles usarem o app continuamente por muitas horas. Nesse cenário, o app também executa uma taxa mais alta de renderização na tela porque o mapa é atualizado em tempo real. Em alguns casos, a tela pode ser redesenhada quase continuamente, principalmente quando o usuário dirige de um lugar para outro sem parar.
Atualizações de localização
Além da renderização da tela, outras duas atividades de navegação consomem energia do dispositivo:
- Uso de GPS e torre de celular de rádio
- Atualizações e compartilhamento de local, como para fornecer uma ETA ou informar as posições de um veículo em uma frota.
A comunicação por GPS e rádio celular depende de operações de inicialização que consomem muita energia: o GPS precisa encontrar satélites, e os rádios celulares precisam negociar com torres e estabelecer uma conexão. Por esses motivos, eles são executados continuamente durante a navegação, mesmo que os rádios celulares permaneçam ativos por 20 a 30 segundos na tentativa de minimizar os custos de inicialização. O sistema operacional controla essas configurações, que não podem ser facilmente definidas no app.
Para atualizações de local, o uso de energia varia com base em fatores imprevisíveis. Por exemplo, a distância entre o dispositivo e a estação base celular determina o uso de energia, já que o dispositivo usa o sinal mínimo necessário para continuar a navegação e evitar a troca de torres. Portanto, um dispositivo navegando em uma área com conectividade ruim vai usar mais energia do que um que está perto de uma estação base. Além disso, alguns apps podem compartilhar atualizações de local com um serviço central de gerenciamento de frota e, portanto, precisam se comunicar com um servidor para fazer isso.
Otimizar o uso de energia do app
O desafio de otimizar o uso de energia em apps de navegação é que eles dependem muito de recursos que consomem muita energia, o que limita suas opções de reduzir o impacto sem fazer concessões, como restringir o uso da tela. Esta seção fornece uma lista de abordagens que você pode adotar ao otimizar seu app, em ordem do mais para o menos impactante.
Mudar o frame rate
A tela atualiza o que está mostrando em uma frequência conhecida como taxa de frames. A taxa de quadros geralmente é medida em quadros por segundo (FPS, na sigla em inglês). Como a renderização da tela usa muita CPU ou GPU, é possível reduzir a taxa de frames para economizar energia.
A desvantagem de reduzir a taxa de frames é que a renderização da tela pode parecer menos suave, principalmente se o mapa for atualizado com frequência. Isso pode ser mais óbvio quando o mapa está ampliado, quando o usuário está viajando em alta velocidade ou quando a velocidade ou a direção mudam muito.
Consulte a seção Frame rate na documentação para desenvolvedores do Android Media Dev Center para saber mais sobre como modificar frame rates.
Navegar sem um mapa
Embora não seja possível controlar como o usuário final define o brilho da tela do dispositivo ou por quanto tempo ela fica ligada, você pode oferecer uma opção de orientação de navegação sem um mapa. Isso permitiria que o usuário final escolhesse essa opção para economizar energia. Por exemplo, se os motoristas trabalham regularmente no mesmo bairro, talvez não precisem de orientação baseada em mapas com tanta frequência. A navegação sem um mapa pode ser ativada definindo um destino e iniciando a orientação no SDK de navegação, mas sem mostrar um mapa.
Para ocultar a interface de navegação, não adicione um NavigationView ou SupportNavigationFragment. Se você já fez isso, remova o código que os adiciona. O código a seguir foi modificado do app de demonstração do SDK Navigation para Android e mostra o uso de comentários para remover o código que adiciona a interface de navegação:
//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);
O SDK Navigation vai continuar atualizando os locais ajustados à via, a ETA e a distância restante da viagem. Além disso, seu app ainda pode se inscrever em todos os eventos gerados pelo SDK à medida que o motorista avança. Isso não é adequado para todos os casos de uso e, claro, não é uma boa ideia quando o motorista precisa ver o mapa e seguir a orientação visual. As capturas de tela a seguir ilustram uma comparação lado a lado da alternância de visualizações de mapa durante a navegação ativa.
![]() |
![]() |
Usar um estilo de mapa escuro
Considere estilizar o mapa para usar um tema escuro e reduzir a quantidade de energia necessária para renderizar o mapa na tela.
O SDK Navigation renderiza os mapas usando o SDK do Google Maps para Android, que contém opções para estilizar qualquer visualização de mapa não relacionada à navegação no seu app. A visualização de navegação também permite forçar o modo escuro. Isso pode não afetar todos os dispositivos da mesma forma devido a diferenças no tipo de tela, mas permite uma possível economia de energia em alguns casos. Um estudo recente descobriu que a quantidade de energia economizada pelo modo escuro em algumas telas depende do brilho inicial. Por exemplo, o modo escuro economiza mais energia em telas definidas com brilho total do que em telas com brilho já ajustado para 30 a 50% do máximo. Isso é importante ao usar o modo escuro nos apps, porque a economia de energia vai depender de como o usuário final define o brilho da tela.
Para saber mais sobre como modificar a interface de navegação, consulte Modificar a interface de navegação.

Para criar um estilo escuro para seu mapa, use um objeto MapStyleOptions com um estilo JSON que represente sua escolha de estilo de mapa escuro. Os estilos JSON legados podem ser criados usando o editor de estilo legado em https://mapstyle.withgoogle.com/.
Mudar a frequência de atualização da localização por GPS
Ao considerar o uso de energia das atualizações de local enviadas do dispositivo, concentre-se mais na frequência das atualizações do que na quantidade de dados enviados na transmissão.
Não é possível controlar isso diretamente no SDK Navigation , mas se o app Android solicitar a localização de forma independente, siga as orientações do artigo Otimizar a localização para a bateria na documentação para desenvolvedores Android. A mesma recomendação se aplica ao uso de fontes de localização que não são de GPS (celular e Wi-Fi).
Oriente seus usuários
Os usuários do seu app podem querer saber como otimizar o consumo de energia. Para ajudar os usuários a reduzir o consumo de energia nos apps, peça para eles fazerem o seguinte:
- Bloquear o smartphone
- Coloque o app de navegação em segundo plano
- Use a navegação sem um mapa, se possível
- Reduza o brilho da tela usando o modo escuro para telas OLED e AMOLED ou ativando o brilho adaptável.
- Mantenha o dispositivo resfriado
- Conecte-se ao Wi-Fi do veículo, se disponível
Medir o consumo de energia
É possível usar ferramentas profissionais para medir o consumo de energia, mas geralmente é difícil ou caro adquiri-las. Os apps e as ferramentas de criação de perfil de IDE, como o Power Profiler no Android Studio e o painel de uso da bateria no XCode Organizer, medem o consumo de energia, mas pode ser difícil remover o efeito dos processos em segundo plano ou definir um valor de referência de desempenho para medir. Em alguns casos, as restrições do dispositivo podem impedir o acesso aos dados necessários.
Você pode usar hardware de monitoramento de energia para fins especiais e modificar a configuração de conexão da bateria. Há produtos e serviços comerciais para ajudar você a fazer isso. Modificar dispositivos dessa forma pode anular a garantia.