Como parar o Wakelocks de qualquer aplicativo Android sem raiz

Você já dormiu à noite com um telefone completamente carregado, apenas para acordar com a bateria fraca? Não se preocupe, isso aconteceu com todos nós. Mesmo com o modo Doze e todos os esforços do Google para melhorar a duração da bateria no Android, a duração da bateria ociosa não é exatamente ideal. Especialmente se você tiver muitos aplicativos instalados. O culpado é provavelmente um wakelock que se comporta mal de um aplicativo como Facebook, Messenger, Snapchat, etc. Felizmente, você pode facilmente parar esses wakelocks usando comandos simples do shell. E você nem precisa de raiz para isso! Hoje, mostraremos como você pode parar os wakelocks de qualquer aplicativo Android sem usar o root. Isso pode ser feito em qualquer telefone Android, desde que você tenha o ADB.


Pare Wakelocks de qualquer aplicativo Android

Tutorial em vídeo do nosso canal do YouTube, caso você prefira uma ajuda visual

Antes de começar qualquer coisa, você precisará configurar o ADB no telefone e no computador. Se você ainda não o fez, consulte este tutorial para se configurar.

A menos que você tenha certeza absoluta do que está esgotando sua bateria, usaremos uma pequena ferramenta chamada "Melhores estatísticas da bateria" para encontrar o culpado. O desenvolvedor está ativo em nossos fóruns, para que você possa encontrar o aplicativo aqui. No entanto, se você deseja dar suporte ao desenvolvedor, também pode baixá-lo na Google Play Store, onde é um aplicativo pago. Ele fornece muitas outras estatísticas, como estados da CPU, ativação de aplicativos e informações de rede.

Requer raiz em dispositivos com o Android KitKat e superior; no entanto, existe uma solução alternativa de comando do ADB para dispositivos não raiz. Conecte seu dispositivo ao computador, seja por depuração USB ou WiFi. Verifique se está conectado usando o comando:

 adb devices 

Em seguida, iniciaremos o shell do Android usando o seguinte comando:

 adb shell 

Posteriormente, concederemos a BetterBatteryStats recém-instalada a permissão BATTERY_STATS com:

 pm grant com.asksven.betterbatterystats_xdaedition android.permission.BATTERY_STATS 

Feito! Agora, o BBS funcionará no seu dispositivo não rooteado.

Nota: se você comprou Melhores Estatísticas da Bateria na Google Play Store, altere "com.asksven.betterbatterystats_xdaedition" para apenas "com.asksven.betterbatterystats" no comando ADB acima.

Encontrando o culpado

Você tem muitos aplicativos no telefone, portanto, não há uma maneira fácil de saber com certeza o que está consumindo sua bateria. É por isso que estamos usando Better Stats da bateria para encontrar o wakelock responsável. Depois de configurar o aplicativo, carregue o telefone, desconecte-o e deixe-o em paz com a tela desligada por pelo menos 30 minutos. Isso deve dar ao aplicativo tempo suficiente para registrar tudo. Uma vez dentro do aplicativo, selecione Wakelocks parciais e veja qual aplicativo está causando mais danos.

No resumo principal do BBS, toque em "Resumo" para ver todas as opções.

Toque em "Wakelocks parciais" para ver todos os wakelocks no seu dispositivo.

No nosso caso, o wakelock "LagunaServiceHandler" do Snapchat é o culpado.

Parando o Wakelock

Agora que sabemos o que está consumindo sua bateria, podemos acabar com isso. No nosso caso, é o Snapchat. Seja qual for o seu culpado, não deixe de encontrar o nome do pacote do aplicativo usando o Package Name Viewer da Play Store, porque precisaremos dele para o nosso comando ADB abaixo.

Como você obviamente desconectou o telefone para usar o Better Battery Stats, conecte-o novamente ao computador para usar o ADB novamente. Mais uma vez, verifique se está conectado corretamente com

 adb devices 

E entre no shell usando:

 adb shell 

Agora, usando o nome do pacote do aplicativo de destino, envie o seguinte comando:

 cmd appops set com.android.application WAKE_LOCK ignore 

Obviamente, você mudará “com.android.application” com o nome do pacote do seu aplicativo. No meu caso:

 cmd appops set com.snapchat.android WAKE_LOCK ignore 

Se você executou todas as etapas corretamente, todas as solicitações de wakelocks do aplicativo serão ignoradas pelo sistema Android. Parabéns!


Explicação

Um wakelock, em termos leigos, é apenas uma maneira de um aplicativo manter a CPU / tela / outras coisas acordadas quando o telefone está ocioso para executar uma tarefa específica em segundo plano. Alguns aplicativos precisam legitimamente de wakelocks para funcionar corretamente, mas o problema ocorre quando alguns aplicativos mantêm wakelocks repetidamente, mantêm-nos por um longo tempo sem soltá-los, ou realizam tarefas excessivas / desnecessárias de rede e CPU aproveitando esses wakelocks.

Caso em questão: aplicativos como Snapchat, Facebook, Messenger ou outros aplicativos de mídia social incluem wakelocks com comportamento inadequado. Este tutorial é simplesmente uma maneira de impedir que esses wakelocks aconteçam novamente sem desinstalar o aplicativo. Se, no entanto, você perceber que o aplicativo para de funcionar corretamente após o uso desse comando ADB, você pode mudar as coisas do jeito que estavam executando novamente o comando e alterando "ignorar" para "permitir" ou simplesmente desinstalar e re -instalando o aplicativo novamente.