JasonWang's Blog

如何在Android中查看进程状态

字数统计: 476阅读时长: 1 min
2017/09/22

在Android开发调试过程中,常需要使用ps指令用于获取当前系统进程的快照信息(如果想要获取进程动态信息,则需要使用top命令)。通过ADB SHELL连接上手机后,输入adb shell命令进入shell控制台, 输入ps即可查看当前系统所有进程信息:

ps all process

Android的PS指令在Linux的基础上做了很大的简化,使用ps查看一个进程的信息,大概有两种方式,一个是根据进程全名,一个是根据进程ID。比如,这里要获取Phone进程的信息:

  • 进程名

ps process name

  • 进程ID

ps PID

有关PS指令的具体代码可参考: /android/system/core/toolbox/ps.c

另外,通过ps指令,指定参数-T还可以查看进程内所有线程的状态:

ps threads

上述ps指令输出各个参数有何含义?

FIELD Description
USER 进程持有者名称
PID 进程ID
PPID 父进程ID
VSIZE 进程在虚拟内存所占的空间大小(KB)
RSS 进程实际所使用的物理内存大小(KB)
WCHAN Waiting Channel, 进程等待正在等待的某个事件,如果为空,则表示进程处于运行状态
PC Program Counter, 程序计数器所保存的地址
NAME 进程名

除了列表中的参数之外,输出的参数中还有一列用于表示进程状态,这里看到进程状态是S(sleeping)。通常进程可能有以下几个状态:

缩写代号 进程状态 含义
D TASK_UNINTERRUPTABLE uninterruptible sleeping, cannot be woken up
S TASK_INTERRUPTABLE sleeping, can be woken up
R TASK_RUNNING task currently running
T TASK_STOPPED traced or stopped
Z TASK_ZOMBIE zombie process, terminated and parent not waiting

参考文献

原文作者:Jason Wang

更新日期:2021-08-11, 14:59:59

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG
  1. 1. 参考文献