A duração da bateria é o aspecto mais importante da experiência do usuário em dispositivos móveis. Um dispositivo sem energia não oferece nenhuma funcionalidade. Por isso, é extremamente importante que os apps respeitem ao máximo a duração da bateria.
Há três considerações importantes para manter o app com um consumo econômico de bateria:
- Deixe seus apps Lazy First.
- Use os recursos da plataforma que podem ajudar a gerenciar o consumo de bateria do app.
- Use ferramentas que possam ajudar a identificar os principais responsáveis pelo consumo de bateria.
Lazy First
Tornar seu app Lazy First significa procurar maneiras de reduzir e otimizar as operações que consomem muita bateria. As principais questões relacionadas ao Lazy First são:
- Reduzir: há operações redundantes que seu app pode eliminar? Por exemplo, é possível armazenar em cache os dados salvos em vez de ativar repetidamente o rádio para refazer o download dos dados?
- Adiar: um app precisa realizar alguma ação imediatamente? Por exemplo, ele pode esperar até que o dispositivo esteja carregando antes de fazer backup dos dados na nuvem?
- Agrupar: o trabalho pode ser agrupado, em vez de colocar o dispositivo em um estado ativo várias vezes? Por exemplo, é realmente necessário que dezenas de apps ativem individualmente o rádio em momentos distintos para enviar mensagens? As mensagens podem ser transmitidas durante uma única ativação do rádio?
Faça essas perguntas quando se trata de usar a CPU, o rádio e a tela. O design Lazy First geralmente é uma boa maneira de controlar esses consumidores vorazes de bateria.
Para que você atinja essas e outras eficiências, a plataforma Android oferece vários recursos que ajudam a maximizar a duração da bateria.
Recursos da plataforma
Em termos gerais, a plataforma Android oferece duas categorias de ajuda para otimizar o consumo de bateria do app. Primeiro, ela fornece várias APIs que você pode implementar no seu aplicativo. Saiba mais sobre essas APIs no Guia de processamento em segundo plano.
Há também mecanismos internos na plataforma que ajudam a preservar a duração da bateria. Embora essas APIs não sejam implementadas de maneira programática, ainda é preciso conhecê-las para que seu app as use. Para mais informações, consulte:
- "Soneca" e "App em espera".
- Buckets de "App em espera": o sistema limita o acesso dos apps aos recursos do dispositivo, como a CPU ou a bateria, com base nos padrões do usuário.
- Restrições em segundo plano: se um app exibir comportamentos inadequados, o sistema solicitará que o usuário restrinja o acesso dele aos recursos do sistema.
- Restrições de gerenciamento de energia: veja uma lista de restrições de energia que podem ser impostas aos apps em determinadas condições.
- Testar e resolver problemas.
Além disso, o Android 9 (API nível 28) faz várias melhorias no modo de economia de bateria. Os fabricantes de dispositivos determinam as restrições precisas impostas. Por exemplo, nas compilações do AOSP, o sistema usa as seguintes restrições:
- O sistema coloca os apps no modo em espera de forma mais agressiva, em vez de esperar que eles fiquem inativos.
- Os limites de execução em segundo plano são válidos para todos os apps, independentemente do nível da API segmentado.
- Os serviços de localização podem ser desativados quando a tela está desligada.
- Os apps em segundo plano não têm acesso à rede.
Veja todos os detalhes sobre as otimizações de energia específicas do dispositivo em Restrições de gerenciamento de energia.
Como sempre, é recomendado testar seu app enquanto a "Economia de bateria" está ativa. É possível ativar a "Economia de bateria" manualmente na tela Config. > Economia de bateria do dispositivo.
Ferramentas
Aproveite ainda mais esses recursos usando as ferramentas disponíveis na plataforma para descobrir que partes do seu app consomem mais energia. Encontrar o que segmentar é um grande passo para a otimização bem-sucedida.
Existem ferramentas para o Android, entre elas Classificação da renderização de GPU e Battery Historian, que ajudam a identificar áreas que podem ser otimizadas para melhorar a duração da bateria. Aproveite essas ferramentas para segmentar áreas em que é possível usar os princípios do Lazy First.