Congelar processos em segundo plano sem root (Android 7.0+)

Este tutorial mostra como congelar os processos em segundo plano de qualquer aplicativo no Android 7.0 e 7.1 Nougat sem root usando um comando ADB oculto.

O Android sempre foi considerado a plataforma móvel mais “poderosa” quando comparado ao iOS devido à quantidade de liberdade que seus aplicativos de terceiros têm. Isso permite que muita automação ocorra simplesmente porque os aplicativos Android podem realizar mais tarefas enquanto estão sendo executados em segundo plano. No entanto, isso tem uma desvantagem, pois abre a porta para um consumo potencialmente maior de bateria, graças aos processos em segundo plano em execução no dispositivo.

Uma coisa é saber que você está carregando seu telefone com aplicativos executados em segundo plano, pois está disposto a sacrificar parte da vida útil da bateria pelos benefícios que eles trazem. A história é diferente se você estiver apenas baixando aplicativos tradicionais que não são otimizados e que executam tarefas em segundo plano quando você não deseja ou mesmo não precisa. O Google tem trabalhado para corrigir isso, colocando cada vez mais restrições sobre o que os aplicativos podem fazer em em segundo plano, e o lançamento do Android O traz a maioria das restrições de processo/receptor em segundo plano, distante.

No entanto, a grande maioria dos usuários não verá o Android O em seus dispositivos por muitos meses (se é que o verá). Mas se você estiver correndo Android 7.0 ou Android 7.1, há um truque simples que você pode fazer manualmente impedir que um aplicativo seja executado em segundo plano - e isso não requer raiz ou um aplicativo de terceiros. Isso é mais poderoso do que o Greenify ou aplicativos como o Brevent oferecem, pois sem acesso root esses aplicativos são bastante limitados no que podem fazer. Mas com esse truque, agora você pode bloquear aplicativos como Facebook ou Hangouts de serem executados em segundo plano - eles só funcionarão quando estiverem sendo usados ​​ativamente!


Tutorial de restrição de processos em segundo plano

Requisitos:

  • Dispositivo Android Nougat (7.0 ou 7.1)
  1. Instale os drivers USB para o OEM do seu dispositivo específico (o Google fornece uma lista de alguns drivers USB universais aqui).
  2. Faça o download do Binário ADB para o seu sistema operacional específico (janelas, Mac, Linux). Esses links sempre apontarão para a versão mais recente do binário.
  3. Extraia o conteúdo do arquivo ZIP em uma pasta de fácil acesso no seu PC.
  4. Vá para o aplicativo Configurações em seu telefone e toque na opção Sobre o telefone.
  5. Encontre o número da versão e toque nele 7 vezes para ativar o modo de desenvolvedor.
  6. Volte ao menu principal Configurações e entre nas Opções do desenvolvedor para ativar o modo de depuração USB.
  7. Conecte seu telefone ao computador e mude do modo “somente carga” para o modo “transferência de arquivos (MTP)”. Isso não é necessário em todos os dispositivos, mas muitos dispositivos exigem isso como medida de segurança antes de permitir que o ADB funcione.
  8. Volte para o PC e navegue até o diretório onde você extraiu o binário ADB.
  9. Inicie um prompt de comando ou terminal em seu diretório ADB. Para usuários do Windows, isso pode ser feito segurando Shift e clicando com o botão direito e selecionando a opção “abrir prompt de comando aqui”. (Alguns usuários do Windows 10 podem ver o “prompt de comando” substituído por “PowerShell”.)
  10. Quando estiver no ambiente de prompt de comando ou terminal, digite o seguinte comando: adb devices
  11. Isso iniciará o daemon ADB se ainda não tiver sido iniciado, apenas espere que termine. Se esta for a primeira vez que você executa o ADB, você também verá um prompt em seu telefone solicitando que você autorize uma conexão com o computador. Permita o acesso à depuração USB aqui.
  12. Agora, se você executar novamente o comando adb devices da etapa 10, o prompt/terminal de comando imprimirá o número de série do seu dispositivo. Se sim, então você está pronto para seguir em frente. Caso contrário, os drivers USB provavelmente não estão instalados corretamente.
  13. Em seguida, você precisará encontrar o nome do pacote do aplicativo que deseja congelar os processos em segundo plano. Você pode fazer isso instalando o Inspetor de aplicativos aplicativo no seu telefone.
  14. Volte ao prompt de comando e digite o seguinte comando: adb shell
  15. Agora execute o seguinte comando para liberar os processos em segundo plano de um aplicativo: cmd appops set RUN_IN_BACKGROUND ignore
  16. Se você quiser reverter a alteração que acabou de fazer e permitir novamente os processos em segundo plano de um aplicativo, digite este comando: cmd appops set RUN_IN_BACKGROUND allow
  17. Você saberá que funciona se retornar a outro prompt do shell do ADB e não exibir uma mensagem de erro.

Explicação

Exatamente como esse comando funciona é que ele permite restringir uma permissão oculta que normalmente não é acessível ao usuário no aplicativo Configurações. Esta permissão é chamada de permissão RUN_IN_BACKGROUND e a única maneira de modificá-la é usar "cmd appops", que é a interface de linha de comando para "App Ops" - o sistema de gerenciamento de permissões voltado para o usuário do Google.

O Google adicionou este comando ADB oculto que permite restringir qualquer aplicativo de receber intenções de transmissão implícitas (ou seja, o aplicativo sendo ativado em segundo plano) e também evita que esses aplicativos agendem serviços em segundo plano sem usar o JobScheduler (ou seja, o aplicativo acorda em um momento inoportuno, descarregando a bateria). Na verdade, esse comando deve ser usado apenas por desenvolvedores que desejam simular o desempenho de seu aplicativo em condições de pouca memória, mas felizmente podemos colocá-lo para nosso próprio uso.

Ao remover dependências dos serviços de segundo plano de um aplicativo e dos receptores de transmissão implícitos registrados no manifesto, os desenvolvedores podem otimizar seu aplicativo para funcionar melhor em dispositivos com pouca memória. O Google afirma que aplicativos otimizados para esse tipo de dispositivo, ou aqueles com pouca memória, podem melhorar tanto o desempenho quanto a experiência do usuário. No Google I/O deste ano, a empresa anunciou uma versão modificada do Android chamada Android Go, que será usado para smartphones com pouca memória, então presumimos que este comando seria útil para desenvolvedores que visam essa plataforma.

Em qualquer caso, este comando pode ser bastante útil para o usuário médio, mas tome cuidado com o que você restringe aqui. Aplicativos como Hangouts ou Facebook irão parar completamente de sincronizar em segundo plano até que você os abra, e se é isso que você deseja, tenho certeza de que não se importa. Mas não se surpreenda quando seus e-mails ou mensagens atrasarem se você executar este comando em um aplicativo que depende de receptores em segundo plano.