3 votes

Prise en charge de la mémoire virtuelle Android

Je veux savoir si Android supporte le concept de mémoire virtuelle. Je sais que Windows supporte la mémoire virtuelle mais qu'en est-il d'Android ? Est-ce que nos téléphones Android stockent les données moins utilisées en dehors de la RAM ?

12voto

Andy Brudtkuhl Points 1714

Android n'utilise pas la mémoire virtuelle (au sens où vous l'entendez) par défaut, car il dispose d'un mécanisme de plus haut niveau. L'écriture transparente de pages de mémoire sur le stockage flash est mauvaise pour l'autonomie de la batterie (et pour la durée de vie de votre stockage flash, qui ne peut gérer qu'un certain nombre d'écritures) et les performances, d'autant plus que l'application n'a aucun contrôle sur les parties de la mémoire qui sont "paginées".

Au lieu de cela, Android gère la mémoire à l'aide du même mécanisme qu'il utilise pour décider quand arrêter les applications qui ne sont plus en cours d'exécution. Lorsqu'il constate qu'il a besoin de libérer de la RAM, il choisit une application qui a été mise en cache (une application qui n'est pas actuellement utilisée). Il met fin à cette application pour libérer sa RAM, mais il donne d'abord à la mémoire de l'application le nom de l'utilisateur. activités une chance de sauvegarder un certain état en l'écrivant dans le stockage.

En faisant en sorte que l'application choisisse explicitement ce qu'elle doit sauvegarder dans le stockage, au lieu de sauvegarder la totalité du contenu de la RAM de l'application, Android peut réduire la quantité de données qu'il doit écrire depuis le stockage et relire plus tard. Cela permet d'économiser de l'espace de stockage, ainsi que de l'énergie et du temps sur la batterie, car chaque écriture et lecture depuis le stockage coûte du temps et de l'énergie.

Bien sûr, Android est basé sur Linux, et utilise la mémoire virtuelle d'autres manières non visibles pour l'utilisateur. Les systèmes Android doivent disposer d'une MMU, de sorte que les applications utilisent des adresses virtuelles et non physiques. Cela permet de protéger les applications contre la lecture de leurs données privées en RAM par d'autres applications, ce qui est nécessaire pour un système sécurisé. Le système utilise également le principe du delayed-commit de Linux pour économiser la mémoire : lorsqu'un processus demande plus de mémoire, il n'obtient des pages de mémoire physique que lorsqu'il les utilise réellement. La mémoire virtuelle permet également l'accès en mémoire aux fichiers du système de fichiers et au matériel en mémoire. Tout cela n'a rien à voir avec les fichiers d'échange, mais cela signifie qu'il n'est pas tout à fait exact de dire qu'Android n'utilise pas de mémoire virtuelle.

Vous pouvez activer le swap sur Android : voir cette question connexe pour plus de détails. Il n'est pas recommandé de le faire dans la plupart des cas, car cela annule le mécanisme d'économie de mémoire décrit ci-dessus. L'ajout d'une partition d'échange déchargera la batterie plus rapidement, épuisera votre stockage flash plus vite et rendra le système moins réactif. Vous ne devriez le faire que si vous devez absolument exécuter une application qui nécessite plus de RAM que votre appareil n'en possède.

0voto

Kim Points 1

Je ne sais pas si j'ai raison mais je pense qu'androif contient en quelque sorte une mémoire virtuelle comme un pc. Egale à la taille de la RAM. Si ce n'était pas le cas, je ne pense pas que les appareils Android seraient lents une fois que le disque dur est presque plein. Oui, tout commentaire est le bienvenu

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X