Conecte-se conosco
Como melhorar o uso da Bateria no Android

Android

Bateria: uma investigação detalhada (Android)

Uma generalização com licença poética sobre o consumo de bateria em smartphones e como prevenir problemas de consumo exagerado…

Como melhorar o uso da Bateria no Android

Uma generalização com licença poética sobre o consumo de bateria em smartphones e como prevenir problemas de consumo exagerado.

 O crime

Você vai dormir, mas esquece de conectar o carregador ao smartphone. Pela manhã, atrasado, descobre que a bateria acabou, o aparelho morreu, e lá se foi o despertador. É, meu caro, existem várias outras situações como essa, onde o seu caríssimo smartphone morre por falta de bateria mesmo estando “inativo” na maior parte do tempo.

 Os suspeitos

O ponto: a bateria é consumida pelo smartphone para manter ativos processos que você usa ou pretende usar (ou que a fabricante do aparelho decidiu serem importantes). Permanecer constantemente conectado ao Facebook e Google Talk, manter sua posição atualizada para check-ins no Foursquare, trocar mensagens via Whatsapp e receber as mais diversas notificações diversas resulta, claro, num grande consumo de energia.

Enquanto você usa ativamente seu aparelho, a tela consome a maior parte da bateria. Se for um jogo ou um aplicativo de mídia (vídeo, por exemplo), grandes quantidades de processamento são necessárias para descompactar a imagem e reproduzir o conteúdo. Esse poder todo tem um preço: os smartphones de hoje em nada se comportam como o saudoso Nokia-Lanterninha, que carecia de recursos avançados, mas aguentava 10 dias sem ver uma tomada.

Com a tela desligada, o aparelho entra em modo stand-by, mas é “acordado” constantemente por alguns aplicativos. O mecanismo usado pelo Android para acordar e manter acordado o aparelho com a tela desligada se chama wakelock. Através de um wakelock, um app mantêm o processador ativo para realizar tarefas específicas. Mecanismos embutidos em apps e ROMs de fabricantes permitem impedir wakelocks e/ou desativar conexões, economizando bateria, mas aí é como se você voltasse 10 anos no tempo para a época em que o telefone servia para jogar Snake, mandar SMS e fazer ligações, e só. Com isso, já podemos listar os nossos suspeitos:

Suspeito número 1: o Display

A tela é, sem dúvida, a maior consumidora de bateria em um smartphone moderno. Não importa a tecnologia usada, LCD, AMOLED, Super AMOLED, etc, todas são devoradoras de recursos, em maior ou menor quantidade. Tecnologias de brilho automático ajudam, mas não resolvem. No entanto, a tela é um dispositivo muito simples, ou está ligada, ou desligada. E desligada, não consome nada.

Suspeito número 2: Rádios

Telefonia, Rede de dados, WiFi, NFC, Bluetooth. Nossos smartphones são transceptores incríveis que, embora sejam dotados de muitas utilidades, nem sempre são necessários. Para controlá-los, a maioria dos fabricantes já inclui no aparelho widgets com botões para ligar e desligar estes recursos, geralmente na barra de notificações. Não é milagroso, mas pode ajudar a ganhar tempo extra de bateria.

Suspeito número 3: Processamento de apps:

Quando a tela está ligada, o processamento utilizado mantêm todos os recursos e apps do aparelho em funcionamento. Não há como fugir muito disso. O problema, então, é representado pelos famigerados wakelocks, que atuam depois que você desliga a tela. Nesse momento, o comportamento padrão do sistema Android é colocar o processador em deep sleep (sono profundo). Nesse modo, o processador não consome tanta energia. Para que um app possa realizar tarefas, ele cria um wakelock, impedindo o processador de entrar em sono profundo e utilizando-o. Em teoria, o wakelock não pode demorar muito tempo, apenas o suficiente para realizar as tarefas requisitadas. Mas, todos sabemos que nem todos os apps se comportam direito. Mesmo os mais famosos como o Facebook podem “enlouquecer” e destruir com a sua bateria mesmo com a tela desligada. Eis a fonte dos nossos problemas!

O inquérito

Nosso suspeito principal acaba sendo, então, o processador. Em stand-by, com a tela desligada, o processador tem que passar a maior parte do tempo dormindo um sono profundo e poupando bateria. Então, como saber se seu smartphone está se comportando corretamente? Antes de mais nada, é necessário saber se ele está entrando em deep sleep, e se fica a maior parte do tempo de tela desligada nesse estado. Para isso vamos utilizar o aplicativo CPU Spy, que é gratuito e bem simples:

Tela do CPU Spy mostrando os estados do processador.

Nessa tela, se na seção “Unused states” (estado não utilizados) estiver listado deep sleep, você tem um grave problema. Isso significa que seu aparelho nunca entrou em deep sleep! Se o estado deep sleep tem uma porcentagem muito baixa e você manteve o smartphone com a tela desligada e sem estar conectado ao carregador (sim, conectado ao carregador o smartphone não entra em deep sleep), pode haver algum problema. A melhor forma de testar isso é, com a bateria carregada, limpar as estatísticas (acessando MENU>Reset Timers), desligar a tela e deixar o smartphone quieto por algumas horas. Depois verifica-se os resultados e atividades registradas.

Se você identificar um comportamento problemático, temos que verificar qual é o app/serviço mal comportado que está mantendo seu smartphone acordado à toa. Para isso, vamos utilizar um app muito bom, chamado Better Battery Stats (BBS). O aplicativo é pago, mas vale cada centavo, pois é uma ferramenta ótima para identificar e prevenir problemas (existe uma versão gratuita disponível no XDA-Developers). O detalhe, quanto mais poderosa é uma ferramenta, mais especializada e complicada de usar ela será. Então, vamos a um simples tutorial de como interpretar o BBS.

Primeiro, inicie o aplicativo, para que ele calcule os cenários, e caia no padrão: Other, Unplugged, Current. O que significa isso? “Other” é o tipo de dados a ser visualizado, lá também se encontram os Kernel wakelocks e os Partial Wakelocks, que serão tratados em seguida. “Unplugged” significa a situação que determina o início do monitoramento. No caso, quando o aparelho foi desligado do carregador. Você pode trocar para Screen On, Screen Off, Boot, ou Custom (modo personalizado), para localizar problemas. O terceiro campo indica até quando o relatório do monitoramento vai, utilizamos “Current” (atual). Vale lembrar que o app deve ser usado sem o smartphone estar conectado no carregador.

Tela do Better Battery Stats no estado padrão

O interessante na primeira tela é verificar se seu smartphone, quando a tela está desligada, está entrando em deep sleep. Idealmente, o estado “Screen on” (tela ligada) deveria ter o mesmo tempo de “Awake” (acordado), e o restante seria “deep sleep” (sono profundo). No entanto, é normal seu telefone “acordar” de vez em quando mesmo com a tela desligada, por vários motivos. Se seu período de “deep sleep” corresponder a menos de 70% do tempo de tela desligada, você tem um problema.

Digamos que seja seu caso, vamos utilizar outro parâmetro para tentar descobrir o que está acontecendo, selecione no primeiro parâmetro Kernel Wakelocks. Aqui varia bastante, mas basicamente, se tiver “Wlan no nome, tem a ver com o WiFi, qualquer menção a Phone (RIL) tem a ver com telefonia, e PowerManagerService agrupa os wakelocks de apps individuais, geralmente deve ocupar a primeira posição. No meu caso, WiFi está em primeiro, consumindo mais tempo do que todos os apps juntos, com a tela desligada.

Tela do BBS mostrando os Kernel Wakelocks

Aqui se faz necessário um pouco de pesquisa para determinar o exato motivo do problema. Problemas com Wlan podem estar relacionados à rede WiFi que se está acessando, alguns roteadores mantêm aparelhos ativos afim de prover serviços (DLNA, uPNP), se você tiver sinal fraco, o telefone (RILJ) vai constantemente tentar achar uma rede ou trocar entre GSM e WCDMA (2G e 3G), mas isso não deve consumir mais de 25% do tempo de tela desligada, serviços de localização podem constantemente requisitar ao telefone sua posição via antenas de celular, ou via WiFi através dos serviços do Google, ou ainda usar GPS. Enfim, como cada telefone, rede, operadora, usuário e fabricante tem um perfil, fica complicado generalizar esse aspecto, vamos nos ater a apps mal comportados, e você que se vire com sua operadora, ROM, roteador wifi, etc, não é mesmo?

Se o PowerManagerService foi identificado como o problema do seu smartphone, é aqui que podemos ajudar. Escolha, ao invés de Kernel wakelocks, o parâmetro Partial wakelocks. Esses são wakelocks gerados por apps. Aqui cabe ao usuário identificar e tomar providências quanto aos apps.

Tela do BBS mostrando os partial wakelocks

Crime e Castigo

Escolha se vale a pena congelar um app usando o Titanium Backup, ou verificar suas configurações de sincronização para aumentar o tempo entre atualizações, ou ainda impedir o app de acessar a rede quando não estiver explicitamente em uso (para quem já está com a versão Jelly Bean do sistema Android, basta ir no relatório de uso de dados, escolher o app e restringir os dados em segundo plano).

é possível restringir um app explicitamente na tela de uso de dados para não acessar a rede quando não estiver explicitamente ativo.

Apps como o Greenify podem ajudar a colocar apps mal comportados em hibernação quando a tela desliga, mas podem impedir alarmes de tocar, widgets de atualizar e serviços de emails e mensagens instantâneas de funcionar a contento, então use-os com cautela. Outros apps agem colocando o processador em deep sleep, como o Deep Sleep Battery Saver, mas o efeito é o mesmo, em sono profundo o processador não está disponível para aplicações, nem as conexões de dados e, portanto, seu smartphone não será tão “smart” assim quando estiver dormindo.

Lembre-se que é uma troca, um app não consome sua bateria se não estiver disponibilizando um serviço que talvez você necessite. Tome decisões equilibradas e pode ser que sua bateria dure mais, sem atingir as funcionalidades que você realmente precisa.

Prevenir é melhor que remediar

Agora que você já identificou os problemas e tomou iniciativas para que seu aparelho fique mais tempo em deep sleep com a tela desligada, é hora de tomar medidas para prevenir apps mal comportados de detonarem com sua bateria. O BetterBatteryStats serve para isso também. O modo Watchdog dele avisa você se enquanto a tela ficou desligada, o aparelho foi impedido de entrar em deep sleep durante uma certa porcentagem do tempo. Assim, você pode analisar novamente os logs e verificar qual app está se comportando mal (tocar música via A2DP com a tela desligada, por exemplo, mantêm a CPU acordada) ou qual uso detona mais sua bateria com a tela desligada.

Tela de configurações do Watchdog do BBS

Outro aplicativo que pode ajudar é o Watchdog, que também é pago, mas tem uma versão Lite que tem propaganda e não tem blacklist (opção onde você diz que tal app não pode usar tal porcentagem da CPU em background por tal tempo, senão, morte nele). O Watchdog monitora o sistema por apps mal comportados, que extrapolem parâmetros de uso de CPU. Ele te avisa se um app se comportar mal e você pode “matar” ele (e ele se lançará automaticamente, com sorte, sem o problema) ou pode decidir desinstalar ele, se não for um app muito usado.

Tela do Watchdog com as estatísticasTela do Watchdog com a informação sobre uso de CPU

E, com isso, chegamos ao fim da nossa investigação. Para enviar dúvidas, sugestões e compartilhar sua experiência no uso de um smartphone ou tablet, deixe um comentário nos campos abaixo. Ficaremos felizes em respondê-lo!

Gáucho do Interior do Rio Grande do Sul, Técnico em Informática, geek e jogador de Truco Gaudério. Desde 1999 hackeando tudo que ligue na tomada e/ou use baterias. Especialista em gadgets, sistemas operacionais e redes.

Comentários

Mais de Android

Dica

Mais Lidas

Reviews

Cultura Geek

Tutoriais

To Top