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>
相关推荐
yeflx11 小时前
Ubuntu22.04安装Mysql Workbench
数据库·mysql·adb
夜雪一千11 小时前
MySQL 自增 ID 的底层原理与坑点
android·mysql·adb
Dxy12393102161 天前
MySQL JSON 生成列索引原理、实战与坑点
mysql·adb·json
远方 hi1 天前
MySQL 管理
adb
夜雪一千2 天前
MySQL 删除 JSON 类型的数据实战
mysql·adb·json
千码君20164 天前
个人开发者:安卓手机adb调试
android·adb·智能手机
夜雪一千4 天前
MySQL 如何存储经纬度坐标:选型、建表、空间查询实战
android·mysql·adb
有毒的教程5 天前
Dev-C++ 使用扩展库两种方式:DevPak一键安装 / 手动配置(重点)
android·c++·adb
虎王物联5 天前
随身WiFi AT指令实战手册:查串号、改串、锁频、拉起ADB一次讲清
物联网·adb