Les réponses fournies sont exactes, je souhaite simplement apporter une précision du point de vue d'un développeur iOS.
iOS est conçu pour gérer autant de choses que possible afin que vous (et les développeurs) n'ayez pas à vous en soucier. Le résultat final est un quelque peu une approche cohérente pour toutes les applications, y compris celles d'Apple (même si parfois, Apple elle-même prend des raccourcis).
Ceci étant dit, la prémisse est :
- iOS en sait plus que nous sur la mémoire. Il sait combien il en a, et combien il en a besoin (jusqu'à un certain point).
- iOS a le contrôle total de la mémoire ; il a le dernier mot sur qui utilise quoi.
- Si iOS a besoin de mémoire, il la trouvera, et cela se fait généralement en tuant les autres processus qui sont restés inactifs pendant un certain temps (et il existe de nombreuses règles en coulisses, nous ne les connaissons pas toutes, et nous ne nous en préoccupons pas vraiment).
- Tout ce que fait un processeur (CPU) consomme de l'énergie. Absolument tout. N'oubliez pas que les ordinateurs ne sont que de très petits conteneurs d'électrons qui se déplacent dans de très petits espaces.
- Lorsqu'une application est tuée, il existe des protocoles convenus (contrats) qui définissent ce qui doit être fait. iOS applique et transporte ces protocoles. Mais le travail doit être fait, ce n'est pas gratuit et certainement pas toujours bon marché (cela dépend vraiment de ce qu'est l'application).
Cela dit, on peut supposer que la plupart des utilisateurs ferment des applications dans l'espoir d'augmenter l'autonomie de la batterie, en pensant qu'en fermant des applications, ils gaspillent moins d'énergie pour les maintenir en fonctionnement.
La vérité est que, sur iOS, ce n'est presque jamais le cas. Lorsque vous appuyez sur home, l'application est suspendue et n'utilise plus les ressources dont d'autres applications peuvent avoir besoin. Si une nouvelle application (ou même iOS) a besoin de cette mémoire, elle s'en chargera d'elle-même, mais seulement si elle en a besoin.
Vous fermez les applications encore et encore, et vous forcez iOS à faire ça. potentiellement coûteux La tâche de décharger réellement une application, de sauvegarder son état et ainsi de suite, avec le problème supplémentaire que lorsque vous rouvrez l'application, tous ces éléments doivent être annulés et, selon la complexité de l'application, beaucoup de choses doivent être lues depuis le stockage, jusqu'à la mémoire principale du téléphone, et ainsi de suite. Tout ce travail supplémentaire aurait pu être évité si vous aviez simplement laissé l'application dans son état "suspendu".
Cependant
Dans certains cas (et ils sont rares mais pas incroyablement rares), vous voulez tuer les applications qui se comportent mal. Les exemples sont (mais pas limités à) : Les apps qui traitent le fond sonore, ou les services asynchrones comme la localisation (où l'app demande un emplacement et iOS doit aller se renseigner sur l'endroit où il se trouve, par exemple en déclenchant le GPS si nécessaire), le streaming vidéo, etc.
J'ai eu d'innombrables exemples d'applications comme Lyft, United Airlines, et même Twitter, qui se sont retrouvées en panne (ou qui n'ont tout simplement pas fonctionné correctement), soit parce que vous êtes dans un mauvais réseau (iOS est devenu très mauvais pour récupérer de certains mauvais réseaux dans les 3-4 dernières versions), soit parce que le réseau ne répond tout simplement pas correctement.
Avec le temps, la plupart de ces problèmes tendent à disparaître et l'application recommence à fonctionner ; mais si vous avez vraiment besoin que l'application fonctionne maintenant Il faut alors payer le prix de la mort et du redémarrage à partir de zéro. Vous avez utilisé plus de batterie en faisant cela, mais, hey, vous en aviez besoin.
Et si cela vous a dérouté, je peux vous donner une analogie avec une voiture, car c'est ce que nous avons tendance à faire tout le temps.
L'analogie avec la voiture
<em>Je sais que la technologie automobile a évolué et que ce n'est plus un bon exemple, mais jouez avec moi ici. </em>.
L'allumage du moteur d'une voiture consommait plus de carburant que la simple marche au ralenti. Lorsque les voitures étaient équipées de carburateurs au lieu d'injecteurs, c'était encore pire ; c'est pourquoi éteindre votre moteur lorsque vous vous arrêtez à un feu rouge peut théoriquement consommer plus de carburant que de laisser tourner le moteur au ralenti pendant une minute. Les voitures plus récentes ont un mécanisme beaucoup plus efficace et peuvent arrêter le moteur, tout en restant dans un état de semi-démarrage (ne parlons pas trop des voitures ici).
Fermer des applications, c'est l'équivalent d'une personne qui éteint sa voiture à chaque feu rouge. Au lieu de la laisser tourner au ralenti jusqu'à ce que vous en ayez à nouveau besoin, normalement quelques secondes plus tard.
L'analogie n'est pas parfaite, car la vérité est que les voitures au repos utilisent toujours du carburant, alors que les applications suspendues n'en utilisent pas. no en utilisant tout ce qui est lié à la mémoire ou à la batterie (tant qu'ils n'ont pas de traitement de fond actif, évidemment).
En fait, vous éteignez votre moteur à chaque fois que vous fermez une application, et vous ne laissez pas le mécanisme "intelligent" d'iOS qui fait tourner le moteur au ralenti s'en charger, de sorte que lorsque le feu passe au vert, il vous suffit d'appuyer sur l'accélérateur pour que le moteur démarre. plus rapide que s'il avait été arrêté à 100%. Le démarrage d'un moteur à partir d'un état arrêté consomme également plus d'énergie que le simple carburant, il faut tourner le démarreur pour que le moteur puisse être lancé, injecter du carburant et créer des étincelles, donc c'est beaucoup de travail en coulisse. Les applications sont comme les moteurs :)
31 votes
L'idée fausse est la partie "course". Les applications dans le sélecteur ne sont pas nécessairement en cours d'exécution, la plupart d'entre elles ne le sont pas. Considérez-le davantage comme une liste des "dernières utilisations" que comme un moniteur de processus.
3 votes
Comme patrix, j'aimerais ajouter qu'iOS ferme les applications de lui-même lorsqu'il manque de mémoire. Ainsi, même s'il semble que 50 applications sont "en cours d'exécution", si vous regardez une vidéo, il y a de fortes chances que les 49 autres aient en fait été fermées après 2/3 minutes. Le sélecteur d'applications ne montre qu'une capture d'écran récente de ces applications à ce stade.
5 votes
@CodedMonkey Je suis en grande partie d'accord avec votre commentaire, cependant la seule clarification que je ferais est que les 49 autres ne seraient pas licenciés, ils seraient suspendus. La différence est que lorsqu'une application est terminée, elle n'est plus résidente en mémoire, alors qu'être suspendue signifie qu'elle n'est pas visible à l'écran et qu'elle n'exécute pas de code. Dans cet état, elle n'utilise pas le processeur ou la batterie, mais elle réside toujours en mémoire. Cependant, tout ceci étant dit, en utilisant votre exemple, je pense qu'iOS pourrait effectivement mettre fin à certaines des 49 autres applications, mais garder la plupart d'entre elles dans un état suspendu.
8 votes
Nous devons probablement aborder la question de l'éléphant dans la pièce : qu'est-ce qui vous fait dire "laissez toutes ces applications en cours d'exécution" et qu'est-ce que "fermez les applications" ? iOS 11 fait fonctionner trois applications au maximum et certaines applications sont activées périodiquement en arrière-plan (à dessein) si l'on parle du système d'exploitation dans ses grandes lignes ou en termes simples. Si cette question a pour but d'aérer le débat sur la suppression des vignettes d'images d'applications sauvegardées de l'interface utilisateur multitâche, clarifions ce point dans la question.
3 votes
J'horrifie vraiment mes amis en ayant (en ce moment) 314 tans dans safari et 57 applications "ouvertes".
1 votes
Il est impossible qu'iOS maintienne 50 applications suspendues en même temps, à moins que chacune d'entre elles ait une empreinte mémoire vraiment microscopique. J'estime, sur la base de mes propres appareils et de mes habitudes d'utilisation, que seules les 3 à 10 applications les plus récentes sont maintenues en mode suspendu. Si je passe beaucoup de temps dans une seule grande application (YouTube, Twitter, Safari, etc.), même les applications les plus récentes sont suspendues. l'application suivante la plus récemment utilisée obtient un rechargement complet quand je reviens en arrière. Il est clair qu'une plus grande quantité de mémoire vive améliorerait quelque peu la situation. J'utilise un iPhone 6 avec 1 Go de mémoire vive.
1 votes
@BradC L'expérience de chacun sera différente, non seulement en raison de la quantité de RAM disponible sur leur appareil, mais aussi en raison des applications qu'ils utilisent - deux points que vous reconnaissez à juste titre. :) Dans mon personnel Avec un iPhone 6s (2 Go de RAM) et les applications que j'utilise régulièrement, je n'ai pas souvent à faire face à un rechargement complet. C'est certainement beaucoup moins qu'avec, par exemple, un iPhone 5 doté de 1 Go de RAM et fonctionnant sous iOS 8, mais bien sûr pas aussi bien qu'avec les modèles plus récents dotés de 3 Go de RAM et fonctionnant sous iOS 11. L'année prochaine, les nouveaux iPhones seront probablement équipés de 4 Go de RAM.
0 votes
@patrix il est difficile de penser qu'il s'agit d'une "utilisation récente" quand il se souvient de l'endroit où vous vous êtes arrêté, mais ne le fait pas si vous le "fermez".
1 votes
@EdmundReed Conserver un état de redémarrage est possible même sans que l'application ne fonctionne. Et toutes les applications ne le supportent pas vraiment.