移动测试基础 android 中 dumpsys 命令使用

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

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=1440mDisplayHeight=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报错,怎么解决呢
Service dumps disabled due to hung system process.

请问个问题,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
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册