测试基础 android 中 dumpsys 命令使用

xuxu · 2014年10月10日 · 最后由 securitytest 回复于 2017年09月26日 · 6142 次阅读
本帖已被设为精华帖!

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

adb shell dumpsys | findstr DUMP

下面简单列下我用到的一些命令...(在编写脚本时需要获取一些状态值供判断用)
获取设备分辨率:

adb shell dumpsys display | findstr DisplayDeviceInfo
DisplayDeviceInfo{"内置屏幕": 1080 x 1920, 55.0 fps, density 480, 464.949 x 468.923 dpi...

获取设备电池信息:

adb shell dumpsys battery
Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  status: 2 #电池状态
  health: 2
  present: true
  level: 34 #电量
  scale: 100
  voltage: 3848
  current now: -427943
  temperature: 280 #电池温度
  technology: Li-ion

获取 cpu 信息:

adb shell dumpsys cpuinfo

获取内存信息:

adb shell dumpsys meminfo
要获取具体应用的内存信息,可加上包名
adb shell dumpsys meminfo PACKAGE_NAME

获取 Activity 信息:

adb shell dumpsys activity
加上-h可以获取帮助信息
获取当前界面的UI信息,可以用:
adb shell dumpsys activity top
要获取当前界面的Activity:
adb shell dumpsys activity top | findstr ACTIVITY

获取 package 信息:

adb shell dumpsys package
加上-h可以获取帮助信息
获取某个包的信息:
adb shell dumpsys package PACKAGE_NAME

获取通知信息:

adb shell dumpsys notification
 NotificationRecord(0x44217920: pkg=com.sohu.newsclient useron=0x7f0201b5 / com.tencent.news:drawable/icon
   pri=0 score=0
   contentIntent=PendingIntent{4294d748: PendingIntentRecord{44088e90 com.tencent.news startActivity}}
   deleteIntent=null
   tickerText=null
   contentView=android.widget.RemoteViews@441fc810
   defaults=0x00000001 flags=0x00000010
   sound=null
   vibrate=null
   led=0x00000000 onMs=0 offMs=0
   extras={
     android.title=农业部:中国超级稻亩产超1吨
     android.subText=null
     android.showChronometer=false
     android.icon=2130837941
     android.text=农业部今日通报称,经专家测产,袁隆平领衔培育的中国“超级稻”亩产过千公斤,创造1026.7公斤新纪录。详情>>
     android.progress=0
     android.progressMax=0
     android.showWhen=true
     android.infoText=null
     android.progressIndeterminate=false
     android.scoreModified=false
   }

获取 wifi 信息:

adb shell dumpsys wifi
可以获取到当前连接的wifi名、搜索到的wifi列表、wifi强度等

获取电源管理信息:

adb shell dumpsys power
可以获取到是否处于锁屏状态:mWakefulness=Asleep或者mScreenOn=false
亮度值:mScreenBrightness=255
屏幕休眠时间:Screen off timeout: 60000 ms
屏幕分辨率:mDisplayWidth=1440,mDisplayHeight=2560
等

获取电话信息:

adb shell dumpsys telephony.registry
可以获取到电话状态,例如
mCallState值为0,表示待机状态、1表示来电未接听状态、2表示电话占线状态
mCallForwarding=false #是否启用呼叫转移
mDataConnectionState=2 #0:无数据连接 1:正在创建数据连接 2:已连接
mDataConnectionPossible=true  #是否有数据连接
mDataConnectionApn=   #APN名称
等
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 13 条回复 时间 点赞

赞一个

不错~

支持 xuxu!!

学习学习!

怎么通过这些信息来分析问题呢?
比如 ANR、性能问题?
有没有一些好的经验可以分享?

请问个问题,dumpsys cpuinfo 和 top 命令查看的,结果有很大的出入,为什么?

#9 楼 @cy_suncheng 我感觉 dumpsys cpuinfo 更靠谱些,跟在 monitor 里面看到的数据差不多大小

#8 楼 @csl 重启手机才可以了,可是重启后好大一会采集不到第三方应用的 cpu 信息,采集的都是系统应用的 cpu 信息。

xuxu [该话题已被删除] 中提及了此贴 07月07日 15:46

学习了,谢谢分享。

xuxu Android 常用 adb 命令总结 中提及了此贴 12月04日 14:12

有的手机 dumpsys 报错,怎么解决呢
Service dumps disabled due to hung system process.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册