Forcer l’arrêt et vider le cache expliqué

Si vous avez un problème avec une application sur votre smartphone Android, vous avez peut-être lu que vous devriez faire un « Forcer l’arrêt » et ensuite « vider le cache » pour le réparer. Et en fait, cela pourrait très bien être exactement ce que vous devez faire. Mais en quoi cela peut-il vous aider ? Que fait « Force stop » et qu’est-ce qu’un cache ? Laissez-moi vous expliquer.

Force Stop

Au cœur d’Android se trouve le noyau Linux, c’est le composant responsable de la gestion de la mémoire et des processus ainsi que de tout un tas d’autres ressources. Chaque fois que vous démarrez une application, vous démarrez en fait un processus Linux.

Un processus est un conteneur logique pour un programme (app). Il est lancé par le noyau et est utilisé comme un moyen de partager les ressources du système (y compris la mémoire et le temps CPU) entre toutes les apps en cours d’exécution. Chaque processus a un ID, connu sous le nom de PID (Process ID) ; une priorité, quelle est son importance ; son propre espace d’adressage, plus les pages de mémoire physique associées ; et quelques informations d’état : en cours d’exécution (ou exécutable), en sommeil, arrêté et zombifié.

Le travail du noyau est de planifier le temps CPU et d’allouer de la mémoire au processus afin qu’il puisse s’exécuter. La façon dont cela fonctionne est que le noyau donne des tranches de temps CPU à chacun des processus en cours d’exécution. Si un processus est en sommeil (parce qu’il attend quelque chose, comme des données provenant du réseau), il n’obtient pas de temps CPU. Ce jonglage des processus se fait au niveau de la milliseconde, très rapidement, et tout comme les images d’un dessin animé, vous obtenez l’apparence de la fluidité et de plusieurs programmes fonctionnant en même temps.

Enfin, lorsqu’une appli se termine, le noyau nettoie toutes les ressources utilisées par l’appli (comme les fichiers ouverts, la mémoire allouée, etc.) et supprime éventuellement le processus qui a été créé pour cette appli.

Chaque appli peut être dans l’un des différents états suivants : en cours d’exécution, en pause ou arrêté. Ceux-ci sont différents des états de processus, tels que définis par Linux, et représentent le « cycle de vie de l’activité » tel que défini par Android. Google l’exprime ainsi : « lorsqu’un utilisateur navigue à travers, sort et revient à votre application, les instances d’activité de votre application passent par différents états dans leur cycle de vie. »

La chose intéressante avec Android est qu’il ne tue jamais une application directement. Au lieu de cela, il tue le processus dans lequel l’activité s’exécute, détruisant non seulement l’activité mais aussi tout ce qui s’exécute dans le processus. Il peut le faire lorsqu’il a besoin de libérer de la mémoire vive ou un utilisateur peut tuer un processus en utilisant Force Stop dans le gestionnaire d’applications.

Lorsque tout fonctionne sans problème, une application passera d’un état d’activité à un autre et finira soit par être tuée par Android (après être passée à l’état arrêté), soit par traîner en arrière-plan jusqu’à ce que l’utilisateur la ramène au premier plan. Cependant, si les choses commencent à mal tourner, l’application peut mal se comporter. Elle peut cesser de répondre à certains événements, elle peut rester coincée dans une sorte de boucle ou elle peut simplement commencer à faire des choses imprévisibles.

Dans de tels cas, il peut être nécessaire de tuer l’appli et de la redémarrer. C’est à cela que sert Force Stop, il tue essentiellement le processus Linux de l’app et nettoie le désordre !

La raison pour laquelle l’utilisation de Force Stop est recommandée lorsqu’on essaie de réparer une app qui se comporte mal, c’est 1) qu’elle tue l’instance en cours d’exécution de cette app et 2) cela signifie que l’app n’accédera plus à aucun de ses fichiers de cache, ce qui nous amène à l’étape 2 : Effacer le cache.

Clear Cache

Après que l’app ait été tuée, l’étape suivante consiste à supprimer les données dans le répertoire de cache. Lorsqu’une application a besoin d’un fichier temporaire, d’un fichier prétraité, ou lorsqu’elle veut garder une copie locale d’un fichier qui a été téléchargé sur Internet alors il sera placé dans le répertoire cache de l’application. Chaque app a son propre répertoire où elle peut mettre des fichiers de travail.

L’idée est la suivante . Si une app télécharge des fichiers ou des données depuis Internet, alors ce serait un gaspillage de bande passante plus une perte de temps de télécharger les mêmes fichiers à chaque fois que l’app démarre. Au lieu de cela, tous les fichiers qui doivent être téléchargés depuis Internet peuvent être téléchargés une fois et stockés dans le cache. De temps en temps, l’app peut vérifier si ces copies temporaires sont toujours valides et rafraîchir le cache si nécessaire.

Un autre exemple serait si l’app a besoin de traiter un fichier, peut-être effectuer un décodage ou un décryptage sur certaines données. Plutôt que d’effectuer ce décodage ou ce décryptage à chaque lancement de l’app, ce qui utiliserait beaucoup de cycles CPU, l’app peut le faire une fois et ensuite stocker le résultat dans le cache. Là encore, l’app pourrait vérifier la validité du fichier traité et rafraîchir le cache si nécessaire.

La raison pour laquelle il s’agit de fichiers temporaires est que l’app ne doit pas compter sur la présence de ces fichiers car Android peut les supprimer lorsqu’un appareil est à court de stockage. Dans ces cas, l’app se contente de télécharger à nouveau les données, ou de traiter à nouveau les fichiers et d’en créer de nouveaux dans son cache.

Les apps peuvent également stocker des fichiers de manière plus permanente en utilisant le répertoire de données de l’app. Celui-ci est différent du répertoire de cache et est conçu pour les fichiers persistants appartenant à l’app. Puisqu’Android est capable de supprimer les fichiers dans le répertoire de cache sans en avertir l’app, il est également sûr pour les utilisateurs de supprimer ces fichiers via le bouton « Effacer le cache » !

Cela peut aider à réparer les apps qui se comportent mal car cela vide le pool de fichiers temporaires et force l’app à les recréer et donne ainsi à l’app une sorte de nouveau départ. Cela peut souvent résoudre le problème car l’erreur était dans le traitement d’un fichier temporaire ou en cache.

Un avantage secondaire de l’effacement du cache est qu’il libère de l’espace de stockage. Donc, si vous êtes à court de stockage interne, alors effacer les données en cache pour toutes les applications peut aider.

Wrap-up

Après quelques expérimentations pendant la bêta d’Android P, la dernière version d’Android de Google conserve les mêmes boutons et fonctionnalités pour Force Stop et Clear Cache que les versions précédentes. Vous trouverez toujours les deux sous le menu de réglage des applications.

Android 9.0 Pie introduit cependant quelque chose de nouveau – la fermeture automatique des applications qui ne répondent pas. Cela signifie que vous n’aurez plus, espérons-le, à forcer la fermeture des apps qui cessent de répondre, le système devrait tout gérer automatiquement. Ainsi, les utilisateurs ne verront pas la boîte de dialogue « app not responding » (ANR) pour les alerter d’une application qui ne répond pas s’ils utilisent Pie. Cependant, si pour une raison quelconque, une application ne répond plus, les utilisateurs de Pie devraient toujours essayer les boutons Force Stop et Clear Cache pour tuer l’application et ensuite la redémarrer.

Force Stop peut toujours être utilisé pour tuer les applications gelées avec Android P, mais cela devrait maintenant se produire automatiquement.
Clear Cache reste en place avec Android 9.0, mais Clear Data a été relabellisé en Clear Storage.

Si vous avez besoin d’instructions sur la façon de vider le cache d’une apps, alors il y a un certain nombre d’excellents guides sur Android Authority, y compris comment vider les données d’apps et le cache dans Android 6.0 Marshmallow et comment regagner de l’espace de stockage en nettoyant le cache sur votre appareil Android. L’utilisation de Force Stop est très similaire, il suffit de suivre les instructions dans les guides liés, mais en tapant sur « Force Stop » plutôt que sur « Clear Cache ». »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.