原文地址https://blog.csdn.net/kittyboy0001/article/details/38562515

原文地址https://blog.csdn.net/u010503912/article/details/51518705

adb shell top

top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序.

top 用法

>adb shell top -h
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [-t ] [ -h ]
-m num Maximum number of processes to display. 最多显示多少个进程
-n num Updates to show before exiting. 刷新次数
-d num Seconds to wait between updates. 刷新间隔时间(默认5秒)
-s col Column to sort by (cpu,vss,rss,thr). 按哪列排序
-t Show threads instead of processes. 显示线程信息而不是进程
-h Display this help screen. 显示帮助文档

adb shell top

> adb shell top

User %, System %, IOW %, IRQ %
User + Nice + Sys + Idle + IOW + IRQ + SIRQ = PID PR CPU% S #THR VSS RSS PCY UID Name
% S 423416K 88160K fg u0_a92 com.tmall.wireless
% R 1232K 536K root top
% S 341712K 40872K fg u0_a90 com.wandoujia.phoenix2.usbproxy
% S 319976K 33284K fg u0_a74 com.android.Chinpower
% S 67320K 20552K fg system /system/bin/surfaceflinger
% S 445876K 80304K fg system system_server
...
% S 0K 0K root watchdog/
% S 0K 0K root khelper
% S 0K 0K root suspend_sys_syn
% S 0K 0K root suspend
第一组数据的含义: User 处于用户态的运行时间,不包含优先值为负进程
Nice 优先值为负的进程所占用的CPU时间
Sys 处于核心态的运行时间
Idle 除IO等待时间以外的其它等待时间
IOW IO等待时间
IRQ 硬中断时间
SIRQ 软中断时间
第二组数据的含义: PID 进程id
PR 优先级
CPU% 当前瞬时CPU占用率
S 进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程
#THR 程序当前所用的线程数
VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PCY 调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
UID 进程所有者的用户id
Name 进程的名称

具体信息可以查看源代码中: xx\system\core\toolbox\top.c

监控CPU的命令使用实战

>adb shell top  | findstr tmall > d:\cpu.txt
打印 top命令,并查找 包含 tmall的命令行,输出至 d:\cpu.txt result: % S 304728K 28900K bg u0_a92 com.tmall.wireless:push % S 322944K 38236K bg u0_a92 com.tmall.wireless % R 345304K 49396K fg u0_a92 com.tmall.wireless % S 303704K 29380K bg u0_a92 com.tmall.wireless:containerprocess1 % S 304728K 28900K bg u0_a92 com.tmall.wireless:push % S 302600K 28596K fg u0_a92 com.tmall.wireless:notify % R 365500K 56708K fg u0_a92 com.tmall.wireless % S 325476K 40868K bg u0_a92 com.tmall.wireless:notify % S 308944K 31320K fg u0_a92 com.tmall.wireless:push % S 305892K 29888K bg u0_a92 com.tmall.wireless:containerprocess1 % S 323080K 39696K bg u0_a92 com.tmall.wireless:push % S 327656K 41556K bg u0_a92 com.tmall.wireless:notify % S 366420K 59700K fg u0_a92 com.tmall.wireless % S 305892K 29888K bg u0_a92 com.tmall.wireless:containerprocess1 % R 278424K 21936K fg u0_a92 com.tmall.wireless:utremote % S 304180K 30964K bg u0_a92 com.tmall.wireless:utremote % R 367456K 59612K fg u0_a92 com.tmall.wireless

======================================================================================================

android调试之top指令查看系统资源

近日,由于客户自己开发的应用软件在我们定制的android设备(定制OS)上运行的时候出现了黑屏重启问题,在确定问题之前,我们需要对客户反馈的bug现象进行复现。由于刚开始时对客户的软件功能等信息了解不多,测试的时候很难复现bug现象,在一次测试打印机的打印功能的时候,无意中发现打印机连续打印的时候容易造成CPU资源消耗过大,甚至因此导致系统重启(软件无反应,5s后看门狗重启系统)。为了有效地排除CPU资源消耗问题,对top指令进行了研究,本文不会面面俱到地谈top指令各种参数的使用,而是选择部分比较实用的参数来谈谈调试的一些技巧。
在 ubuntu 系统输入top -h,可以看到 top 的使用方法。
omj@pc-ubuntu:~$top -h
procps-ng version 3.3.9
Usage:
top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
 
这里我们主要是谈 top 指令在 android 系统下的使用,所以首先要用 usb 线连接PC和设备,然后进入android设备的 shell,查看 top 指令的相关用法。
 
查看android设备是否被PC机识别:
omj@pc-ubuntu:~$adb devices
List of devices attached
d111a8ac device
 
进入android设备的shell:
omj@pc-ubuntu:~$adb shell
root@msm8610:/ #
查看 top 指令的帮助菜单:
root@msm8610:/ #top -h
 
 
从帮助菜单可以看出,PC级别的系统的 top 指令和 android 设备的 top 指令的使用方法还是有点区别的。
 
top指令查看进程资源:
root@msm8610:/ #top
 
每隔 3s 更新一次显示:
root@msm8610:/ #top -d 3
 
按cpu大小列出5个进程列表:
root@msm8610:/ #top -m 5
 
 
根据进程的名字使用 grep 指令过滤输出 "com.hcb.parking" 进程的信息(图中实际上是每隔 1s 输出一次信息):
root@msm8610:/ #top -d 1 | grep "com.hcb.parking"
 
 
 
查看"com.hcb.parking" 应用(或者说"com.hcb.parking" 进程)中所有线程的CPU等信息:
root@msm8610:/ #top -d 1 -t | grep "com.hcb.parking"
 
 
每间隔 3s 将 "com.hcb.parking" 进程的CPU 信息保存到文件:
root@msm8610:/ #top -d 3 | grep "com.hcb.parking" > /data/topinfo.txt &
 
从android设备中将上一步保存的 topinfo.txt 日志信息复制出来(该命令是在退出adb shell 之后执行的):
omj@pc-ubuntu:~/work$ adb pull /data/topinfo.txt .

adb shell top 命令的更多相关文章

  1. 移动端测试===adb shell top命令解释

    adb shell top top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序. top 用法 >a ...

  2. adb shell top 命令详解

    [?25l[0m[H[J 当前系统时间 Tasks: 552 total, 1 running, 510 sleeping, 0 stopped, 0 zombie 任务(进程) 系统现在共有552个 ...

  3. adb shell常用命令

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但 ...

  4. 移动端 - adb shell常用命令

    一.文件操作相关命令 //进入设备 adb shell //进入指定目录"/data/local/tmp" cd /data/local/tmp //查看目录 ls //进入根目录 ...

  5. adb shell常用命令总结

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但 ...

  6. adb shell top 使用

    adb shell top 一.其中相关参数: >adb shell top -h  Usage: top [ -m max_procs ] [ -n iterations ] [ -d del ...

  7. win7 cmd终端连接android手机运行adb shell脚本命令

    win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...

  8. adb shell am命令

    adb shell am命令是在cmd命令行可以通过命令来启动Activity,Boradcast,Service等,更多使用可以参考下面附件. 比如在cmd串口我们发送广播,广播action是&qu ...

  9. 【转】adb shell dumpsys 命令

    adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr DUM ...

随机推荐

  1. 【Android开发】如何设计开发一款Android App

    本文从开发工具选择,UI界面.图片模块.网络模块.数据库产品选择.性能.安全性等几个方面讲述了如果开发一个Android应用.现在整理出来分享给广大的Android程序员. 开发工具的选择 开发工具我 ...

  2. elastic-job(lite)使用的一些注意事项

    前段时间项目开发中用到了当当开源的elastic-job,使用过程遇到一些问题,虽然不见得会影响写代码,但作为一个致力于搬好每一块砖的码农,当碰到问题时,我们不应该逃避,应该本着有困难也要上,没有困难 ...

  3. SDUT -refresh的停车场(栈和队列)

    题目描写叙述  refresh近期发了一笔横財,开了一家停车场.因为土地有限,停车场内停车数量有限,可是要求进停车场的车辆过多. 当停车场满时,要进入的车辆会进入便道等待.最先进入便道的车辆会优先 进 ...

  4. GIS-005-Dojo & jQuery 事件处理

    1.添加事件 dojo.connect(dojo.byId("SelectRect"), "onclick", function () { //todo }); ...

  5. 关于直播学习笔记-002-Red5 & Sewise Player & Wirecast

    一.工具软件 [1]. 视频采集端 Red5 Demo:http://192.168.31.107:5080/demos/simpleBroadcaster.html Telestream:Wirec ...

  6. Python 调用外部命令

    python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下: os.system():结果输出在终端上,捕获不到os.popen() : 结果返回一个对象,即标准输出 ...

  7. Android储存

    Android储存一共5种方法 一: 手机内置,外部储存 1.获取本地存储 (Android的读写文件及权限设置) getFilesDir()   data/data/包名/File getCache ...

  8. oracle11g+win7没有listener服务

    今天在win7上面安装oracle11g的时候,配置了listener后,lsnrctl start报错. 查看服务,也没有发现listener服务. 各位有没有遇见过这个情况啊!!!!!

  9. 百度地图地址查询API使用

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgsAAALxCAIAAABdNHLmAAAgAElEQVR4nOy9/VMbZ5rvnf/hbM7zy3 ...

  10. centos 7 搭建ntp 服务器

    第一步 安装ntp yum install ntp 第二步,查找最近的时间同步服务器 http://www.pool.ntp.org/zone/asia 第三部编辑 /etc/ntp.conf ser ...