ps進程命令
在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代表進程處於運行態;否則代表內核地址(休眠態)。
關於更多進程的調度與優先級的說明,見進程與線程。