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>
相关推荐
大黄说说15 小时前
MySQL索引失效的常见场景有哪些?如何通过EXPLAIN分析查询性能?
android·adb
做个文艺程序员1 天前
深入 MySQL 内核:MVCC、Buffer Pool 与高并发场景下的极限调优
数据库·mysql·adb
camellias_1 天前
ubuntu(二)ubuntu18.04安装mysql8
linux·ubuntu·adb
wb1892 天前
企业级MySQL重习
数据库·笔记·mysql·adb·云计算
嘿siri2 天前
windows安装mysql8.0.33
windows·adb
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 天前
MySQL主从复制实战配置详解,以及企业级相关优化说明
android·mysql·adb
D4c-lovetrain2 天前
linux个人心得24 (mysql③,AI排版尝试)
android·adb
黑牛儿2 天前
MySQL负载均衡配置详细步骤(新手易操作版)
mysql·adb·负载均衡
江不清丶2 天前
深入剖析 MySQL 日志系统:Redo Log、Undo Log 与 Binlog 的协同工作原理
数据库·mysql·adb
不愿透露姓名的大鹏2 天前
MySQL慢查询日志实战优化指南
linux·服务器·数据库·mysql·adb