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?
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.
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:
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