web-dev-qa-db-fra.com

Sur Android, quelle est la différence entre les processus en cours et les processus en arrière-plan mis en cache?

Sur Android, lorsque je regarde dans "Paramètres" -> "App", sous l'onglet "en cours d'exécution", je constate que la mémoire est découpée en plusieurs parties: "mémoire utilisée" et "sans mémoire", les applications sont également insérées. dans "mémoire utilisée", ou "mémoire libre". Les applications de la partie "sans mémoire" sont signalées comme "processus d'arrière-plan mis en cache".

Alors, quels sont les "processus d'arrière-plan mis en cache"? Ils sont toujours en mémoire, plutôt que basculés sur "disque" (comme le font les ordinateurs de bureau/portables), non? Lorsque l'utilisateur clique sur l'un de ces "processus d'arrière-plan mis en cache", il s'affiche immédiatement car il est toujours en mémoire, tout comme un processus en cours d'exécution, n'est-ce pas?

Que fait Android quand il "cache" une application?

27
JackWM

Alors, quels sont les "processus d'arrière-plan mis en cache"?

Étant donné que vous demandez une interprétation technique d'un élément répertorié dans l'interface utilisateur d'un périphérique, la définition peut varier d'un périphérique à l'autre, si les fabricants de périphériques choisissent de bricoler avec l'application Paramètres.

Cela étant dit, les "processus d'arrière-plan mis en cache" font généralement référence à des processus qui n'ont pas d'activité de premier plan et qui n'ont pas de service en cours d'exécution. Ces processus sont conservés en mémoire simplement parce que nous disposons de suffisamment de mémoire pour le faire. Par conséquent, comme vous le constatez, l'utilisateur peut revenir rapidement à ces processus. Alors qu'Android commence à avoir besoin de plus de système RAM pour encore d'autres processus, les "processus en arrière-plan mis en cache" ont tendance à être les processus qui se terminent pour libérer de la mémoire RAM.

L'exemple le plus éminent d'un "processus d'arrière-plan mis en cache" serait celui où l'utilisateur a lancé l'application, l'a contourné brièvement, puis a appuyé sur ACCUEIL pour revenir à l'écran d'accueil. Si le processus n'a pas de service en cours d'exécution, je m'attendrais à le trouver répertorié en tant que "processus d'arrière-plan mis en cache".

Ils sont toujours en mémoire, plutôt que basculés sur "disque" (comme le font les ordinateurs de bureau/portables), non?

Correct. Les appareils Android n'utilisent pas d'espace d'échange.

44
CommonsWare

Process grades

Le système d’exploitation Android tente de maintenir l’application en marche aussi longtemps que possible, mais lorsque la mémoire disponible est faible, il essaiera de libérer des ressources du système En supprimant d’abord les processus de moindre importance.

C'est à ce moment que le classement des processus entre en scène. les processus Android sont classés dans les cinq catégories suivantes de la priorité la plus élevée à la priorité la plus basse:

  • Processus d'avant-plan : Il s'agit d'un processus hébergeant une activité ou un service avec lequel/laquelle l'utilisateur est en train d'interagir: un service démarré au premier plan ou un service .__ exécutant ses rappels de cycle de vie
  • Processus visible : Il s'agit d'un processus qui héberge une activité ou un service mis en veille Lié à une activité visible
  • Processus de service: processus hébergeant un service non lié à une activité visible
  • Processus en arrière-plan : Il s'agit d'un processus qui héberge une activité non visible. Tous les processus en arrière-plan sont triés dans une liste LRU (Le moins utilisé récemment)..... par conséquent, les processus les plus récemment utilisés sont les derniers processus tués lorsque
  • Processus vide : Il s'agit d'un processus utilisé pour mettre en cache des composants Android inactifs .__ et améliorer le temps de démarrage de tout composant.

Lorsque le système atteint le point où il doit libérer des ressources, les processus Disponibles pour être éliminés sont triés, en tenant compte du rang du processus, des derniers processus Utilisés et des composants en cours d'exécution.

La source

Programmation Android asynchrone - Deuxième édition - Helder Vasconcelos - Juillet 2016

1
user4813855