Geler les processus en arrière-plan sans racine (Android 7.0+)

Ce didacticiel vous montre comment geler les processus en arrière-plan de n'importe quelle application sur Android 7.0 et 7.1 Nougat sans root à l'aide d'une commande ADB cachée.

Android a toujours été considéré comme la plate-forme mobile la plus « puissante » par rapport à iOS en raison de la liberté dont disposent ses applications tierces. Cela permet une grande automatisation simplement parce que les applications Android peuvent effectuer plus de tâches lorsqu'elles s'exécutent en arrière-plan. Cependant, cela présente un inconvénient car cela ouvre la porte à une décharge potentiellement plus importante de la batterie grâce aux processus en arrière-plan exécutés sur l'appareil.

C'est une chose de savoir que vous chargez votre téléphone avec des applications qui s'exécutent en arrière-plan, car vous êtes prêt à sacrifier une partie de la durée de vie de votre batterie pour les avantages qu'elles apportent. C'est une autre histoire si vous téléchargez simplement des applications traditionnelles qui ne sont pas optimisées et qui effectuent des tâches en arrière-plan lorsque vous ne le souhaitez pas ou même n'en avez pas besoin. Google s'efforce de résoudre ce problème en imposant de plus en plus de restrictions sur ce que les applications peuvent faire dans l'arrière-plan, et la sortie d'Android O apporte le plus de restrictions de processus/récepteur en arrière-plan en loin.

Cependant, la grande majorité des utilisateurs ne verront pas Android O sur leurs appareils avant plusieurs mois (voire pas du tout). Mais si tu cours Android 7.0 ou Android 7.1, il existe une astuce simple que vous pouvez effectuer manuellement empêcher une application de s'exécuter en arrière-plan - et cela ne nécessite pas de root ou une application tierce. C'est plus puissant que ce que proposent Greenify ou des applications comme Brevent, car sans accès root, ces applications sont assez limitées dans ce qu'elles peuvent faire. Mais avec cette astuce, vous pouvez désormais bloquer des applications telles que Facebook ou Hangouts ne fonctionnent jamais en arrière-plan - ils ne fonctionneront que lorsqu'ils seront activement utilisés !


Didacticiel Restreindre les processus en arrière-plan

Exigences:

  • Appareil Android Nougat (7.0 ou 7.1)
  1. Installez les pilotes USB pour l'OEM de votre appareil particulier (Google fournit une liste de certains pilotes USB universels ici).
  2. Téléchargez le Binaire de la BAD pour votre système d'exploitation particulier (les fenêtres, Mac, Linux). Ces liens pointeront toujours vers la dernière version du binaire.
  3. Extrayez le contenu du fichier ZIP dans un dossier facilement accessible sur votre PC.
  4. Accédez à l'application Paramètres sur votre téléphone et appuyez sur l'option À propos du téléphone.
  5. Recherchez le numéro de build et appuyez dessus 7 fois pour activer le mode développeur.
  6. Revenez au menu principal Paramètres et entrez dans les options du développeur afin de pouvoir activer le mode de débogage USB.
  7. Branchez votre téléphone sur l'ordinateur et passez-le du mode « charge uniquement » au mode « transfert de fichiers (MTP) ». Cela n'est pas nécessaire sur tous les appareils, mais de nombreux appareils l'exigent par mesure de sécurité avant de permettre à ADB de fonctionner.
  8. Revenez au PC et accédez au répertoire dans lequel vous avez extrait le binaire ADB.
  9. Lancez une invite de commande ou un terminal dans votre répertoire ADB. Pour les utilisateurs de Windows, cela peut être fait en maintenant la touche Maj enfoncée et en cliquant avec le bouton droit, puis en sélectionnant l'option « ouvrir l'invite de commande ici ». (Certains utilisateurs de Windows 10 peuvent voir « invite de commande » remplacée par « PowerShell ».)
  10. Une fois que vous êtes dans l’environnement d’invite de commande ou de terminal, entrez la commande suivante: adb devices
  11. Cela démarrera le démon ADB s'il n'a pas déjà été lancé, attendez simplement qu'il se termine. Si c'est la première fois que vous exécutez ADB, vous verrez également une invite sur votre téléphone vous demandant d'autoriser une connexion avec l'ordinateur. Autorisez l’accès au débogage USB ici.
  12. Désormais, si vous réexécutez la commande adb devices à partir de l'étape 10, l'invite de commande/le terminal imprimera le numéro de série de votre appareil. Si tel est le cas, vous êtes prêt à passer à autre chose. Sinon, les pilotes USB ne sont probablement pas installés correctement.
  13. Vous devrez ensuite trouver le nom du package de l'application pour laquelle vous souhaitez geler les processus en arrière-plan. Vous pouvez le faire en installant le Inspecteur d'applications application sur votre téléphone.
  14. Revenez à l'invite de commande et entrez la commande suivante: adb shell
  15. Exécutez maintenant la commande suivante pour libérer les processus en arrière-plan d'une application: cmd appops set RUN_IN_BACKGROUND ignore
  16. Si jamais vous souhaitez annuler la modification que vous venez d'effectuer et autoriser à nouveau les processus en arrière-plan d'une application, entrez cette commande: cmd appops set RUN_IN_BACKGROUND allow
  17. Vous saurez que cela fonctionne s'il vous ramène à une autre invite du shell ADB et ne vous donne pas de message d'erreur.

Explication

Le fonctionnement exact de cette commande est qu'elle vous permet de restreindre une autorisation cachée qui n'est normalement pas accessible à l'utilisateur dans l'application Paramètres. Cette autorisation est appelée autorisation RUN_IN_BACKGROUND et la seule façon de la modifier est d'utiliser "cmd appops" qui est l'interface de ligne de commande pour "App Ops" - le système de gestion des autorisations destiné aux utilisateurs de Google.

Google a ajouté cette commande ADB cachée qui vous permet d'empêcher toute application de recevoir des intentions de diffusion implicites (c.-à-d. l'application se réveille en arrière-plan) et empêche également ces applications de planifier des services en arrière-plan sans utiliser JobScheduler (c.-à-d. l'application se réveille à un moment inopportun, épuisant votre batterie). Cette commande est en fait destinée à être utilisée uniquement par les développeurs cherchant à simuler les performances de leur application dans des conditions de mémoire faible, mais heureusement, nous pouvons l'utiliser pour notre propre usage.

En supprimant les dépendances sur les services d'arrière-plan d'une application et les récepteurs de diffusion implicites enregistrés dans le manifeste, les développeurs peuvent optimiser leur application pour mieux fonctionner sur les appareils à faible mémoire. Google affirme que les applications optimisées pour ce type d'appareils, ou ceux dont la mémoire est faible, peuvent améliorer à la fois les performances et l'expérience utilisateur. Lors du Google I/O de cette année, la société a annoncé une version modifiée d'Android appelée Android Go, qui sera utilisée pour les smartphones à très faible mémoire, nous supposons donc que cette commande serait utile pour les développeurs visant cette plate-forme.

Dans tous les cas, cette commande peut être assez utile pour l'utilisateur moyen, mais faites attention à ce que vous limitez ici. Des applications telles que Hangouts ou Facebook cesseront complètement de se synchroniser en arrière-plan jusqu'à ce que vous les ouvriez, et si c'est ce que vous visez, je suis sûr que cela ne vous dérange pas. Mais ne soyez pas surpris lorsque vos e-mails ou messages sont retardés si vous exécutez cette commande sur une application qui dépend de récepteurs en arrière-plan.