adb之系统工具—dumpsys 命令

一、dumpsys是什么?

dumpsys 是一个在设备上运行的系统工具,它可以转储(dump)所有系统服务(System Services)的当前状态信息。

Android系统的每个核心功能(如活动、内存、电源、窗口等)都由一个独立的系统服务管理。
dumpsys 就是向这些服务询问其内部状态的"总调度员"。

它的强大之处在于:

  • 信息量巨大:输出信息极其详细,涵盖了系统运行的方方面面。
  • 无需Root:大多数调试信息在非Root设备上也可获取。
  • 实时快照:获取的是命令执行那一刻系统的完整状态快照。

基本命令格式:

复制代码
# 查看所有可用的系统服务
adb shell dumpsys -l
#转储特定系统服务的信息
adb shell dumpsys <service_name>

二、测试工程师必备的Service清单

dumpsys -l 会列出上百个服务,但我们只需关注测试中最有用的几个。

1) 内存分析 (dumpsys meminfo)命令:

复制代码
#查看所有进程的内存信息(信息量大)
adb shell dumpsys meminfo
#查看指定包名的应用的内存详情(最常用!)
adb shell dumpsys meminfo <PACKAGE_NAME>

2) 活动栈分析 (dumpsys activity)

命令(过滤是关键):

复制代码
#输出信息极多,必须过滤!
#查看当前聚焦的Activity(最常用)
adb shell dumpsys activity activities |grep -E "mCurrentFocus|mFocusedActivity"

#查看所有Activity的回退栈(Task)信息
adb shell dumpsys activity activities |grep -A 10 -B 2"TaskRecord"

Windows系统请注意:

grep 是一个在 Linux/Unix/macOS 等类 Unix 系统中才存在的文本搜索工具。而 Windows 系统的命令行环境默认没有这个命令。

需要现在 CMD 中输入:adb shell

然后,在出现的设备命令行 $ 或 # 后,输入:dumpsys activity activities | grep -E 'mCurrentFocus|mFocusedActivity'

3) 电源与耗电分析 (dumpsys batterystats)

测试场景: 应用耗电异常,如何提供证据?待机功耗高,是哪个Wake Lock在作祟?

命令(需要重置统计信息以获取干净数据):

复制代码
#重置电池统计信息
adb shell dumpsys batterystats --reset
#执行你的测试场景(例如,玩10分钟游戏)...
#导出耗电统计信息
adb shell dumpsys batterystats > batterystats.txt

更高级的分析:

Android提供了更强大的工具来生成HTML可视化报告:

复制代码
#生成Bug报告,包含详细的电源信息(操作较慢)
adb bugreport
#或者使用新版本命令生成HTML格式的电池分析报告
adb shell dumpsys batterystats --checkin

4) 窗口分析 (dumpsys window)

测试场景: 测试沉浸式状态栏、刘海屏适配、分屏模式、自由窗口模式时,如何确认窗口属性?
命令:

复制代码
#查看当前窗口信息,包含Display尺寸、刘海屏信息等
adb shell dumpsys window

#常用过滤:查看所有已连接的显示屏信息
adb shell dumpsys window |grep -E "Display|init"

#常用过滤:查看刘海屏(display cutout)信息
adb shell dumpsys window |grep -i cutout

5) 应用启动分析 (dumpsys package)

测试场景: 应用安装后有哪些权限?它注册了哪些组件(Activity/Service等)?
命令:

复制代码
#查看指定应用的详细信息,包含权限、组件等
adb shell dumpsys package <PACKAGE_NAME>
相关推荐
海盗12348 小时前
MySQL主从复制的配置方式
android·mysql·adb
cypking1 天前
三、NestJS 开发实战文档-->集成 MySQL(TypeORM)
前端·数据库·mysql·adb·node.js
小韩博2 天前
小迪之盲注第44课
android·网络安全·adb
s_daqing2 天前
adb卸载手机app
adb·智能手机
半壶清水3 天前
ubuntu中mysql升级指南
mysql·ubuntu·adb
Austindatabases4 天前
OceanBase SeekDB SQL优化案例---MySQL在客户端会没有市场的
数据库·sql·mysql·adb·oceanbase
gjc5924 天前
MySQL全实例备份脚本 (用于从库部署)
mysql·adb
Just_Paranoid5 天前
【AOSP】Android Dump 信息快速定位方法
android·adb·framework·service·aosp·dumpsys
佳哥的技术分享5 天前
System.setProperty vs adb setprop (Android SystemProperties)
android·adb
Channing Lewis5 天前
mysql.connector.errors.OperationalError: 1040 (08004): Too many connections
数据库·mysql·adb