adb shell top 命令详解

本文介绍了如何使用adbshell命令`top`来监控Android设备的内存和CPU状态,包括进程数量、内存使用率、CPU使用率等关键信息。通过计算公式可以得出可用内存,并解析了CPU状态的各项指标。此外,还讨论了`adbshelltop`命令的参数选项及其含义,特别指出`s`参数不支持非数字的CPU选项。

一.使用adb shell 命令:

adb shell top -m 10 -s 9

二.解释

Tasks: 552 total,   1 running, 510 sleeping,   0 stopped,   0 zombie  
任务(进程) 系统现在共有552个进程,其中处于运行中的有1个,510个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

Mem:   5849960k total,  4014628k used,  1835332k free,     5756k buffers    
内存状态: 物理内存总量 (5.6G)  使用中的内存总量  空闲内存总量 缓存的内存量
1TB=1024GB ,1GB=1024MB ,1MB=1024KB ,1KB=1024字节。

Swap:  2293756k total,  1039804k used,  1253952k free,   918600k cached  
swap交换分区: 交换区总量  使用的交换区总量  空闲交换区总量  缓冲的交换区总量

如果出于习惯去计算可用内存数,这里有个近似的计算公式:
Mem的free + Mem的buffers + Swap的cached
按这个公式此台服务器的可用内存:1835332k + 5756k + 918600k = 2759688k(约2.6G)

800%cpu  13%user   0%nice  31%sys 756%idle   0%iow   0%irq   0%sirq   0%host    
cpu状态  
800%cpu -- CPU总量
13%user -- 用户空间占用CPU的百分比。
0%nice -- 改变过优先级的进程占用CPU的百分比
31%sys -- 内核空间占用CPU的百分比
756%idle -- 空闲CPU百分比
0%iow  --  IO等待占用CPU的百分比
0%irq -- 硬中断(Hardware IRQ)占用CPU的百分比
0%sirq --  软中断(Software Interrupts)占用CPU的百分比
0%host -- 

[7m  

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

三.注意:

如果使用adb shell top -m 10 -s cpu会报下面错误: top: not integer: cpu

想到adb top --help命令

top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-m LINES] [-d SECONDS] [-p PID,] [-u USER,]

Show process activity in real time.

-H      Show threads
-k      Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID)
-o      Show FIELDS (def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE)
-O      Add FIELDS (replacing PR,NI,VIRT,RES,SHR,S from default)
-s      Sort by field number (1-X, default 9)
-b      Batch mode (no tty)
-d      Delay SECONDS between each cycle (default 3)
-m      Maximum number of tasks to show
-n      Exit after NUMBER iterations
-p      Show these PIDs
-u      Show these USERs
-q      Quiet (no header lines)

可见,我的adb shell top -s命令只支持0-X数字,默认9,猜测分别指代

0  ,1   ,3 ,4 ,5   ,6  ,7  ,8,9   ,10  ,11   ,12
PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE

其中,9刚好代表的是cpu

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Johnny2004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值