Sobre a localização em segundo plano e a duração da bateria

O uso da localização em segundo plano pode afetar significativamente a duração da bateria. O Android oferece suporte a limites para a coleta de localização em segundo plano, solicitando que os desenvolvedores otimizem os aplicativos para melhorar a eficiência da bateria. Essas otimizações são benéficas para todos os dispositivos, independentemente da versão do Android que eles executam.

Com os limites de localização em segundo plano:

  • A coleta de localização em segundo plano é limitada e a localização é calculada e entregue apenas algumas vezes por hora.
  • As verificações de Wi-Fi são mais conservadoras e as atualizações de localização não são computadas quando o dispositivo permanece conectado ao mesmo ponto de acesso estático.
  • A responsividade da fronteira geográfica virtual muda de dezenas de segundos para aproximadamente dois minutos. Essa mudança melhora o desempenho da bateria, que pode ficar até 10 vezes melhor em alguns dispositivos.

Conhecimento necessário

Este documento pressupõe que você conhece as seguintes APIs:

Entender o consumo de bateria

A coleta de localização e o consumo de bateria estão relacionados da seguinte forma:

  • Precisão: a precisão dos dados de local. Em geral, quanto melhor a precisão, maior será o consumo de bateria.
  • Frequência: com que frequência o local é calculado. Quanto maior a frequência do cálculo, mais a bateria será usada.
  • Latência: a rapidez com que os dados de local são entregues. Menos latência geralmente exige mais bateria.

Precisão

É possível especificar a precisão de local usando o método setPriority(), transmitindo um dos seguintes valores como argumento:

  • PRIORITY_HIGH_ACCURACY fornece o local mais preciso possível, que é calculado usando o máximo de entradas necessárias (ele ativa o GPS, o Wi-Fi e a rede celular e usa uma variedade de sensores) e pode causar um consumo significativo de bateria.
  • O PRIORITY_BALANCED_POWER_ACCURACY fornece uma localização precisa e otimiza o consumo de energia. Quase nunca usa o GPS. Normalmente, usa uma combinação de informações de Wi-Fi e celular para calcular a localização do dispositivo.
  • O PRIORITY_LOW_POWER depende principalmente de torres de celular e evita entradas de GPS e Wi-Fi, fornecendo precisão aproximada (no nível da cidade) com consumo mínimo de bateria.
  • O PRIORITY_PASSIVE recebe locais de forma passiva de outros apps para os quais o local já foi calculado.

Use as opções de energia equilibrada ou de baixa energia para atender às necessidades de localização da maioria dos apps. Reserve a alta precisão para apps que são executados em primeiro plano e exigem atualizações do local em tempo real (por exemplo, um app de mapas).

Frequência

Há dois métodos possíveis para especificar a frequência da localização:

Transmita o maior valor possível ao usar setIntervalMillis(). Isso é especialmente verdadeiro para a coleta de localização em segundo plano, que geralmente consome muita bateria. Reserve intervalos de alguns segundos para casos de uso em primeiro plano.

Os limites de localização em segundo plano introduzidos no Android 8.0 (nível 26 da API) aplicam essas estratégias, mas seu app precisa tentar aplicá-las em dispositivos com o Android 7.0 (nível 24 da API) e versões anteriores.

Latência

É possível especificar a latência usando o método setMaxUpdateDelayMillis(), geralmente transmitindo um valor que é várias vezes maior que o intervalo especificado no método setIntervalMillis(). Essa configuração atrasa o envio de locais, e várias atualizações do local podem ser enviadas em lotes. As duas mudanças citadas ajudam a minimizar o consumo de bateria.

Se o app não precisar de uma atualização do local imediatamente, transmita o maior valor possível para o método setMaxUpdateDelayMillis(), trocando latência por mais dados e eficiência da bateria.

Ao usar fronteiras geográficas virtuais, os apps precisam transmitir um valor grande para o método setNotificationResponsiveness() para economizar energia. Recomendamos um valor de cinco minutos ou mais.

Leitura adicional

Para mais informações, consulte estes documentos:

  • Recomendações: este guia apresenta algumas ações recomendadas concretas que podem ser usadas para melhorar o impacto do app na duração da bateria.
  • Casos de uso: este guia apresenta vários casos de uso comuns em que você pode usar os Serviços de localização e como otimizar o impacto na duração da bateria para esses casos.