在adb shell
終端,輸入 ps
,可查看手機當前所有的進程狀態,其中ps
的英文全稱是Process Status。
1. ps命令參數
- -t 顯示進程裡的所有子線程
- -c 顯示進程耗費的CPU時間
- -p 顯示進程優先級、nice值、調度策略
- -P 顯示進程,通常是bg(後台進程)或fg(前台進程)
- -x 顯示進程耗費的用戶時間和系統時間,格式:(u:0, s:0),單位:秒(s)。
上面的參數可根據需要自由組合,比如只需要查看當前進程的線程情況:
查看進程
內的所有子進程和子線程: `ps -t | grep
`;
查看所有普通應用程序,由於目前android是單用戶的,所以用戶普通進程的user都是以u0開頭的,google有意把android發展成支持多用戶的,以後應該會有u1, u2_等等的用戶名,另外普通app的uid是從10000開始:
`ps | grep ^u0`;
2. ps結果分析
例如,在我手機輸出如下命令:(20671是某個進程pid)
ps -P -p -x -c | grep -E "NAME| 20671 "
輸出結果:
結果分析:
字段 |
含義 |
值 |
USER
進程的當前用戶
system
PID
進程ID
20671
PPID
父進程ID
497
VSIZE
進程虛擬地址空間大小
2085804B
RSS
進程正在使用物理內存大小
60892B
CPU
CPU消耗
1
PRIO
進程優化級
20
NICE
Nice值
0
RTPRI
實時進程優先級
0
SCHED
調度策略
SCHED_OTHER(默認策略)
PCY
進程狀態
bg
WCHAN
內核地址
ffffffff
PC
當前程序指針
b17d3d30
-
休眠狀態
S
NAME
進程名
com.android.settings
-
用戶態和內核態時間(單位s)
u:130, s:12
注: WCHAN值為0代表進程處於運行態;否則代表內核地址(休眠態)。