Windows permet aux applications de bureau de continuer à fonctionner, qu’elles soient visibles ou non, tandis que l’iOS d’Apple permet uniquement aux applications d’effectuer quelques tâches limitées en arrière-plan. Android se situe quelque part entre les deux – les applications exécutées au premier plan ont la priorité, mais les applications ont beaucoup plus de liberté pour s’exécuter en arrière-plan que sur iOS.
Nous examinerons exactement comment Android gère les applications et les processus exécutés sur votre téléphone ou votre tablette, démystifiant ce qui se passe en arrière-plan.
La hiérarchie du cycle de vie des processus
Un processus sur Android peut être dans l’un des cinq états différents à tout moment, du plus important au moins important:
- 1. Processus de premier plan: L’application que vous utilisez est considérée comme le processus de premier plan. D’autres processus peuvent également être considérés comme des processus de premier plan – par exemple, s’ils interagissent avec le processus actuellement au premier plan. Il n’y a que quelques processus de premier plan à un moment donné.
- 2. Processus visible: Un processus visible n’est pas au premier plan, mais affecte toujours ce que vous voyez sur votre écran. Par exemple, le processus de premier plan peut être une boîte de dialogue qui vous permet de voir une application derrière elle – l’application visible en arrière-plan serait un processus visible.
- 3. Processus de service: Un processus de service n’est lié à aucune application visible sur votre écran. Cependant, il fait quelque chose en arrière-plan, comme jouer de la musique ou télécharger des données en arrière-plan. Par exemple, si vous commencez à lire de la musique et passez à une autre application, la lecture de la musique en arrière-plan est gérée par un processus de service.
- 4. Processus de base: Les processus d’arrière-plan ne sont actuellement pas visibles par l’utilisateur. Ils n’ont aucun impact sur l’expérience d’utilisation du téléphone. À tout moment, de nombreux processus d’arrière-plan sont en cours d’exécution. Vous pouvez considérer ces processus d’arrière-plan comme des applications «en pause». Ils sont conservés en mémoire afin que vous puissiez reprendre rapidement leur utilisation lorsque vous y revenez, mais ils n’utilisent pas de temps processeur précieux ou d’autres ressources autres que la mémoire.
- 5. Processus vide: Un processus vide ne contient plus de données d’application. Il peut être conservé à des fins de mise en cache pour accélérer le lancement des applications plus tard, ou le système peut le tuer si nécessaire.
Par exemple, disons que vous allumez votre téléphone et ouvrez une application musicale. Pendant que vous l’utilisez, l’application musicale sera un processus de premier plan. Lorsque vous commencez à lire de la musique et que vous quittez l’application musicale, la musique continuera à jouer en tant que processus de service.
Regardons Angry Birds comme un autre exemple. Angry Birds serait un processus de premier plan pendant que vous y jouiez. Lorsque vous quittez Angry Birds et entrez dans l’application Gmail pour afficher votre e-mail, Angry Birds devient un processus d’arrière-plan (car il n’a rien à faire en arrière-plan), tandis que Gmail devient le processus de premier plan. Lorsque vous revenez à Angry Birds, cela deviendra votre processus de premier plan et le jeu reprendra rapidement. Angry Birds n’utilisait pas de ressources en arrière-plan – à part un peu de RAM – mais il reprend rapidement car il est resté en cache et prêt à reprendre.
Android gère automatiquement les processus
Android fait un bon travail de gestion automatique de ces processus, c’est pourquoi vous n’avez pas besoin d’un tueur de tâches sur Android.
Lorsque Android a besoin de plus de ressources système, il commencera à tuer les processus les moins importants en premier. Android commencera à tuer les processus vides et en arrière-plan pour libérer de la mémoire si votre niveau est faible. Si vous avez besoin de plus de mémoire – par exemple, si vous jouez à un jeu particulièrement exigeant sur un appareil sans beaucoup de RAM, Android commencera alors à tuer les processus de service, de sorte que votre musique en streaming et les téléchargements de fichiers peuvent s’arrêter.
Dans la plupart des cas, Android fait tout cela sans que vous ayez à vous en soucier. Android utilise intelligemment la RAM de votre appareil pour la mise en cache des applications et d’autres données, car il ne sert à rien de laisser votre RAM vide.
Bien sûr, Android offre aux applications une telle flexibilité qu’elles ont la possibilité de se comporter mal. Par exemple, une application mal codée pourrait démarrer un processus de service qui reste en cours d’exécution en arrière-plan tout le temps, utilisant tout votre temps processeur et réduisant considérablement la durée de vie de votre batterie.
Une chose intéressante que vous remarquerez dans les applications antivirus comme Avast! pour Android, l’application antivirus utilise une icône de notification. si vous essayez de désactiver l’icône de notification, Avast! recommandera contre elle. En ayant une icône de notification visible, Avast! se fait une application prioritaire, empêchant Android de la considérer comme une application d’arrière-plan et de la tuer.
Les applications Android peuvent démarrer en réponse à des événements
Les applications Android peuvent également démarrer en réponse à des événements. Par exemple, un développeur peut programmer son application pour qu’elle s’exécute automatiquement au démarrage et exécute un service en arrière-plan. Les applications peuvent démarrer en réponse à divers autres événements, par exemple lorsque vous prenez une photo, lorsque votre connexion de données change, etc. Cela permet aux applications d’effectuer des actions en réponse à des événements sans s’exécuter constamment en arrière-plan.
Gestion des processus
Vous ne devriez pas avoir besoin de gérer les processus manuellement, mais il existe plusieurs façons de le faire si vous le souhaitez. Vous pouvez utiliser le menu multitâche sur Android 4.0 et versions ultérieures pour effectuer une gestion de processus de base. Pour y accéder, appuyez sur le bouton multitâche dédié sur les appareils Nexus. Sur d’autres appareils Android, vous devrez peut-être appuyer deux fois ou appuyer longuement sur le bouton Accueil.
Les applications affichées dans le menu sont probablement à l’état de «processus d’arrière-plan». Vous pouvez les tuer en faisant glisser une application vers la gauche ou la droite, ce qui la supprimera de la mémoire de votre appareil. Cela ne devrait pas être nécessaire, mais peut vous aider lorsque vous souhaitez tuer rapidement une application – peut-être qu’elle se comporte mal.
Vous pouvez également accéder à l’écran Paramètres, appuyer sur Applications, appuyer sur une application et utiliser le bouton Forcer l’arrêt pour tuer une application qui se comporte mal.
Android est basé sur Linux, et chaque application sur Android est attribuée à un ID utilisateur Linux différent – ou compte d’utilisateur. Cela isole les applications les unes des autres. Si vous rootez votre appareil, les applications peuvent échapper à leurs bacs à sable utilisateur et s’exécuter avec les privilèges root.
Crédit d’image: JD Hancock sur Flickr