Este registro se publica cuando un proceso finaliza por falta de memoria (OOM). . Se acompaña de 2 códigos: el nivel de ajuste OOM y el estado del proceso.
El código correspondiente de ActivityManagerService :
reportUidInfoMessageLocked(TAG,
"Process " + app.processName + " (pid " + pid + ") has died: "
+ ProcessList.makeOomAdjString(setAdj, true) + " "
+ ProcessList.makeProcStateString(setProcState), app.info.uid);
A continuación se muestra la lista del código fuente AOSP para el nivel de ajuste OOM y el estado del proceso.
Nivel de ajuste OOM
Mensaje
Código
Explicación
cch
CACHED_APP_MIN_ADJ
Se trata de un proceso que sólo alberga actividades que no son visibles, por lo que puede ser eliminado sin ninguna interrupción.
svcb
SERVICIO_B_ADJ
La lista B de SERVICE_ADJ: son los servicios viejos y decrépitos que no son tan brillantes e interesantes como los de la lista A.
anterior
APLICACIÓN_ANTERIOR
Este es el proceso de la aplicación anterior en la que se encontraba el usuario. Este proceso se mantiene por encima de otras cosas, porque es muy común volver a la aplicación anterior. Esto es importante tanto para el cambio de tareas recientes (alternar entre las dos aplicaciones recientes superiores) como para el flujo normal de la interfaz de usuario, como hacer clic en un URI en la aplicación de correo electrónico para verlo en el navegador y, a continuación, pulsar atrás para volver al correo electrónico.
Inicio
HOME_APP_ADJ
Este es un proceso que mantiene la aplicación de inicio -- queremos tratar de evitar matarlo, incluso si normalmente estaría en segundo plano, porque el usuario interactúa mucho con él.
svc
SERVICIO_ADJ
Se trata de un proceso que mantiene un servicio de aplicación, por lo que su eliminación no tendrá un gran impacto para el usuario.
hvy
PESO_PESADO_APP_ADJ
Se trata de un proceso con una aplicación de peso. Está en segundo plano, pero queremos evitar matarlo. Valor establecido en system/rootdir/init.rc al inicio.
bkup
BACKUP_APP_ADJ
Se trata de un proceso que actualmente alberga una operación de copia de seguridad. Matarlo no es del todo fatal, pero generalmente es una mala idea.
prcl
PERCEPTIBLE_BAJO_APP_ADJ
Se trata de un proceso obligado por el sistema (u otra aplicación) que es más importante que los servicios, pero no tan perceptible que afecte al usuario inmediatamente si se mata.
prcm
PERCEPTIBLE_MEDIUM_APP_ADJ
Se trata de un proceso que aloja servicios que no son perceptibles para el usuario, pero el cliente (sistema) que se vincula a él solicita tratarlo como si fuera perceptible y evitar matarlo si es posible.
prcp
PERCEPTIBLE_APP_ADJ
Este es un proceso que sólo alberga componentes que son perceptibles para el usuario, y realmente queremos evitar matarlos, pero no son inmediatamente visibles. Un ejemplo es la reproducción de música en segundo plano.
vis
VISIBLE_APP_ADJ
Se trata de un proceso que sólo alberga actividades visibles para el usuario, por lo que preferiríamos que no desaparecieran.
fg
PRIMER PLANO_APP_ADJ
Este es el proceso que ejecuta la aplicación actual en primer plano. Preferiríamos no matarlo.
psvc
SERVICIO_PERSISTENTE_ADJ
Se trata de un proceso al que el sistema o un proceso persistente ha vinculado e indicado que es importante.
pers
PERSISTENT_PROC_ADJ
Se trata de un proceso persistente en el sistema, como la telefonía. Definitivamente no quieres matarlo, pero hacerlo no es completamente fatal.
sys
SISTEMA_ADJ
El proceso del sistema se ejecuta en el ajuste por defecto.
ntv
NATIVO_ADJ
Código especial para procesos nativos que no están siendo gestionados por el sistema (por lo que no tienen un oom adj asignado por el sistema).
(número entero)
(ninguno)
Valor cuando está por debajo del nivel más bajo definido (NATIVE_ADJ = -1000)
Estado del proceso
Mensaje
Código
Explicación
POR
ESTADO_PROCESO_PERSISTENTE
El proceso es un proceso persistente del sistema.
PERÚ
PROCESS_STATE_PERSISTENT_UI
El proceso es un proceso persistente del sistema y está haciendo UI.
TOP
PROCESS_STATE_TOP
El proceso acoge las principales actividades actuales. Tenga en cuenta que esto cubre todas las actividades que son visibles para el usuario.
BTOP
PROCESS_STATE_BOUND_TOP
El proceso está vinculado a una aplicación TOP.
FGS
SERVICIO_DE_PROCESO_DE_ESTADO_ANTICIPADO
El proceso aloja un servicio en primer plano.
BFGS
PROCESS_STATE_BOUND_FOREGROUND_SERVICE
El proceso aloja un servicio en primer plano debido a un enlace del sistema.
IMPF
PROCESS_STATE_IMPORTANT_FOREGROUND
El proceso es importante para el usuario, y algo de lo que es consciente.
IMPB
PROCESO_ESTADO_IMPORTANTE_FONDO
El proceso es importante para el usuario, pero no es algo de lo que sea consciente.
TRNB
PROCESO_ESTADO_TRANSITORIO_FONDO
El proceso está en segundo plano transitorio por lo que intentaremos que siga funcionando.
BKUP
PROCESO_ESTADO_RESPALDO
El proceso está en segundo plano ejecutando una operación de copia de seguridad/restauración.
VPC
SERVICIO_ESTADO_PROCESO
El proceso está en segundo plano ejecutando un servicio. A diferencia de oom_adj, este nivel se utiliza tanto para el estado normal de ejecución en segundo plano como para el estado de ejecución de operaciones.
RCVR
ESTADO_PROCESO_RECEPTOR
El proceso está en segundo plano ejecutando un receptor. Tenga en cuenta que desde la perspectiva de oom_adj, los receptores se ejecutan en un nivel de primer plano superior, pero para nuestra priorización aquí eso no es necesario y ponerlos por debajo de los servicios significa muchos menos cambios en algunos estados de proceso a medida que reciben difusiones.
TPSL
PROCESS_STATE_TOP_SLEEPING
Igual que PROCESS_STATE_TOP pero mientras el dispositivo está en reposo.
HVY
ESTADO_PROCESO_PESADO
El proceso está en segundo plano, pero no puede restaurar su estado, por lo que queremos evitar matarlo.
INICIO
PROCESO_ESTADO_HOME
El proceso está en segundo plano pero alberga la actividad de la casa.
ÚLTIMO
ESTADO_PROCESO_ÚLTIMA_ACTIVIDAD
El proceso está en segundo plano pero alberga la última actividad mostrada.
CAC
PROCESS_STATE_CACHED_ACTIVITY
El proceso se almacena en caché para su uso posterior y contiene actividades.
CACC
PROCESS_STATE_CACHED_ACTIVITY_CLIENT
El proceso se está almacenando en caché para su uso posterior y es un cliente de otro proceso almacenado en caché que contiene actividades.
CRE
PROCESS_STATE_CACHED_RECENT
El proceso se está almacenando en caché para su uso posterior y tiene una actividad que corresponde a una tarea reciente existente.
CEM
PROCESS_STATE_CACHED_EMPTY
El proceso se está almacenando en caché para su uso posterior y está vacío.
NONE
ESTADO_PROCESO_NO_EXISTENTE
El proceso no existe.
??
(ninguno)
Valor por defecto cuando el código no está en la lista.