Android ps命令详解

ps(Process status )查看进程状态的命令,该命令显示瞬间进程的状态
简单用法,直接adb shell ps命令

localhost:~ name$ adb shell ps
USER      PID   PPID  VSIZE  RSS   WCHAN              PC  NAME
root      1     0     5368   1492  SyS_epoll_ 0000000000 S /init
root      2     0     0      0       kthreadd 0000000000 S kthreadd
root      3     2     0      0     smpboot_th 0000000000 S ksoftirqd/0
root      5     2     0      0     worker_thr 0000000000 S kworker/0:0H
root      7     2     0      0     smpboot_th 0000000000 S migration/0
root      8     2     0      0     rcu_gp_kth 0000000000 S rcu_preempt
root      9     2     0      0     rcu_gp_kth 0000000000 S rcu_bh
root      56    2     0      0     down_timeo 0000000000 D blackbox_main_t
shell     14905 4519  5996   1312           0 7f9b3f4114 R ps

各字段的含义:

USER 进程当前用户
PID 进程ID
PPID 父进程ID
VSIZE 进程的虚拟内存大小,以KB为单位
RSS 实际占用的内存大小,以KB为单位
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
PC Program Counter
NAME 进程状态及名称

休眠进程:这个是进程的状态,从上面打印的内容中可看出进程的状态
进程状态有不同的值:

D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
W - 进入内存交换(从内核2.6开始无效)
X - 死掉的进程
< - 高优先级
N - 低优先级
L - 有些页被锁进内存
s - 包含子进程
l - 多线程,克隆线程
*+ - 位于后台的进程组 *

program counter:计算机中提供要从[存储器]中取出的下一个指令地址的[寄存器]

ps 命令参数:-P -p -t -x -c [pid] [name]

-P 显示调度策略,通常是bg或fg,当获取失败将会是un和er
-p 显示进程的优先级和nice等级
-t 显示进程下的线程列表
-x 显示进程耗费的用户时间和系统时间,格式:(u:0, s:0),单位:秒(s)
-c 显示进程耗费的CPU时间 (可能不兼容Android 4.0以前的老版本系统)
[pid] 过滤指定的进程PID
[name] 过滤指定的进程NAME
ps xxx 显示过滤指定名称的进程
和Linux的ps不同,Linux的ps命令可以这样子:ps -aux,Android上ps的参数并不能一起使用,如ps -txPc.

参考文章
查看进程调度等级

localhost:~ name$adb shell ps -P
USER      PID   PPID  VSIZE  RSS   PCY WCHAN              PC  NAME
root      1     0     5368   1492  fg  SyS_epoll_ 0000000000 S /init
root      3056  1     4280   476   tv  SyS_epoll_ 0000000000 S /sbin/healthd
u0_a58    5183  3261  1939580 86688 bg  SyS_epoll_ 0000000000 S com.huawei.secime

比之前打印的内容多出了一列PCY,表示进程的调度等级

Android进程调度状态:
1.foreground process
2.visible process
3.Service process
4.background process
5.empty process

你可能感兴趣的:(Android ps命令详解)