4 votes

Le processus est mort : cch CACC

J'ai une application 32 bits qui plante sur un LG-H872. Lorsque je regarde la sortie du logcat, je vois

I ActivityManager: Le processus my.app (pid 18816) s'est arrêté : cch  CACC
W cr_ChildProcessConn: onServiceDisconnected (crash ou tué par oom) : pid=18816

Que signifie cch CACC ?

10voto

Andrew T. Points 12017

Ce journal est affiché lorsqu'un processus est tué en raison d'une saturation de la mémoire (OOM). . Il est accompagné de deux codes : le niveau d'ajustement OOM et l'état du processus.

Le code correspondant de ActivityManagerService :

reportUidInfoMessageLocked(TAG,
  "Process " + app.processName + " (pid " + pid + ") has died: "
  + ProcessList.makeOomAdjString(setAdj, true) + " "
  + ProcessList.makeProcStateString(setProcState), app.info.uid);

Voici la liste du code source de l'AOSP pour le niveau d'ajustement OOM et l'état du processus.

Niveau d'ajustement OOM

Message

Code

Explication

cch

CACHED_APP_MIN_ADJ

Il s'agit d'un processus n'hébergeant que des activités qui ne sont pas visibles, il peut donc être tué sans aucune perturbation.

svcb

SERVICE_B_ADJ

La liste B de SERVICE_ADJ -- ce sont les services anciens et décrépits qui ne sont pas aussi brillants et intéressants que ceux de la liste A.

Précédent

PRÉCÉDENT_APP_ADJ

Il s'agit du processus de l'application précédente dans laquelle l'utilisateur se trouvait. Ce processus est conservé avant tout autre chose, car il est très courant de revenir à l'application précédente. C'est important à la fois pour le changement de tâche récent (basculer entre les deux applications les plus récentes) et pour le flux normal de l'interface utilisateur, par exemple cliquer sur un URI dans l'application de messagerie pour l'afficher dans le navigateur, puis appuyer sur la touche retour pour revenir à la messagerie.

domicile

HOME_APP_ADJ

Il s'agit d'un processus contenant l'application maison - nous voulons éviter de le tuer, même s'il est normalement en arrière-plan, parce que l'utilisateur interagit beaucoup avec lui.

svc

SERVICE_ADJ

Il s'agit d'un processus détenant un service d'application -- le tuer n'aura pas beaucoup d'impact en ce qui concerne l'utilisateur.

hvy

POIDS LOURD_APP_ADJ

Il s'agit d'un processus dont l'application est lourde. Il est en arrière-plan, mais nous voulons éviter de le tuer. Valeur définie dans system/rootdir/init.rc au démarrage.

bkup

BACKUP_APP_ADJ

Il s'agit d'un processus qui héberge actuellement une opération de sauvegarde. Le tuer n'est pas totalement fatal, mais c'est généralement une mauvaise idée.

prcl

PERCEPTIBLE_LOW_APP_ADJ

Il s'agit d'un processus lié au système (ou à une autre application) qui est plus important que les services, mais qui n'est pas perceptible au point d'affecter immédiatement l'utilisateur s'il est tué.

prcm

PERCEPTIBLE_MEDIUM_APP_ADJ

Il s'agit d'un processus hébergeant des services qui ne sont pas perceptibles par l'utilisateur, mais le client (système) qui s'y lie doit le traiter comme s'il était perceptible et éviter de le tuer si possible.

prcp

PERCEPTIBLE_APP_ADJ

Il s'agit d'un processus n'hébergeant que des composants perceptibles par l'utilisateur, et nous voulons vraiment éviter de les tuer, mais ils ne sont pas immédiatement visibles. La lecture de musique en arrière-plan en est un exemple.

vis

VISIBLE_APP_ADJ

Il s'agit d'un processus qui n'héberge que des activités visibles par l'utilisateur, nous préférons donc qu'elles ne disparaissent pas.

fg

PREMIER PLAN_APP_ADJ

Il s'agit du processus qui exécute l'application au premier plan. Nous préférons ne pas le tuer !

psvc

SERVICE_PERSISTANT_ADJ

Il s'agit d'un processus auquel le système ou un processus persistant est lié et qui est important.

pers

PERSISTANT_PROC_ADJ

Il s'agit d'un processus permanent du système, tel que la téléphonie. Il ne faut surtout pas le tuer, mais ce n'est pas complètement fatal.

sys

SYSTEM_ADJ

Le processus du système s'exécute à l'ajustement par défaut.

ntv

NATIVE_ADJ

Code spécial pour les processus natifs qui ne sont pas gérés par le système (et qui n'ont donc pas d'oom adj assigné par le système).

(nombre entier)

(aucun)

Valeur lorsqu'elle est inférieure au niveau le plus bas défini (NATIVE_ADJ = -1000)

État du processus

Message

Code

Explication

PER

ÉTAT_DU_PROCESSUS_PERSISTANT

Le processus est un processus système persistant.

PÉROU

PROCESS_STATE_PERSISTENT_UI

Le processus est un processus persistant du système et fait de l'interface utilisateur.

TOP

ÉTAT_DU_PROCESSUS_TOP

Le processus héberge les principales activités en cours. Notez que cela couvre toutes les activités visibles par l'utilisateur.

BTOP

PROCESS_STATE_BOUND_TOP

Le processus est lié à une application TOP.

FGS

SERVICE_DE_L'ETAT_DE_PROCESSUS

Le processus héberge un service de premier plan.

BFGS

SERVICE_DE_TRAITEMENT_DE_L'ÉTAT_BORDÉ_DE_L'AVANT-PLAN

Le processus héberge un service de premier plan en raison d'une liaison système.

IMPF

PROCESSUS_ÉTAT_IMPORTANT_AVANT-PLAN

Le processus est important pour l'utilisateur et il en est conscient.

IMPB

ÉTAT_DU_PROCESSUS_IMPORTANT_BACKGROUND

Le processus est important pour l'utilisateur, mais il n'en est pas conscient.

TRNB

PROCESSUS_ÉTAT_TRANSITOIRE_ARRIÈRE-PLAN

Le processus est transitoire en arrière-plan, nous allons donc essayer de continuer à le faire fonctionner.

BKUP

PROCESSUS_ÉTAT_SAUVEGARDE

Le processus est en arrière-plan et exécute une opération de sauvegarde/restauration.

SVC

SERVICE_ÉTAT_PROCESSUS

Le processus est en arrière-plan et exécute un service. Contrairement à oom_adj, ce niveau est utilisé à la fois pour l'état normal d'exécution en arrière-plan et pour l'état d'exécution des opérations.

RCVR

ÉTAT_DU_PROCESSUS_RÉCEPTEUR

Le processus est en arrière-plan et exécute un récepteur. Notez que du point de vue de oom_adj, les récepteurs s'exécutent à un niveau d'avant-plan plus élevé, mais pour notre priorisation ici, ce n'est pas nécessaire et les placer en dessous des services signifie beaucoup moins de changements dans l'état de certains processus lorsqu'ils reçoivent des diffusions.

TPSL

PROCESSUS_ÉTAT_TOP_SLEEPING

Identique à PROCESS_STATE_TOP mais lorsque l'appareil est en sommeil.

HVY

ÉTAT_DU_PROCESSUS_POIDS_LOURD

Le processus est en arrière-plan, mais il ne peut pas restaurer son état et nous voulons donc essayer d'éviter de le tuer.

ACCUEIL

ÉTAT_DU_PROCESSUS_HOME

Le processus est en arrière-plan mais héberge l'activité de la maison.

DERNIER

ÉTAT_DU_PROCESSUS_DERNIÈRE_ACTIVITÉ

Le processus est en arrière-plan mais héberge la dernière activité affichée.

CAC

ÉTAT_DU_PROCESSUS_ACTIVITÉ_MISE_EN_CACHE

Le processus est mis en cache pour une utilisation ultérieure et contient des activités.

CACC

PROCESS_STATE_CACHED_ACTIVITY_CLIENT

Le processus est mis en cache pour une utilisation ultérieure et est un client d'un autre processus mis en cache qui contient des activités.

CRE

ÉTAT_DU_PROCESSUS_MISE_EN_CACHE

Le processus est mis en cache pour une utilisation ultérieure et son activité correspond à une tâche récente existante.

CEM

ÉTAT_DU_PROCESSUS_CACHED_EMPTY

Le processus est mis en cache pour une utilisation ultérieure et est vide.

AUCUN

ÉTAT_DU_PROCESSUS_INEXISTANT

Le processus n'existe pas.

? ?

(aucun)

Valeur par défaut lorsque le code ne figure pas dans la liste.

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