Android系统分析工具—dumpsys - freshui

Download Report

Transcript Android系统分析工具—dumpsys - freshui

——dumpsys
1
Android系统分析工具—dumpsys
 简介
 实现细节
 几个例子
 注意事项
2
简介
 Dumpsys运行在小机上的可执行文件
 Dump用户感兴趣的系统服务信息
 Dump的信息,对调试有很大帮助
 可能需要root权限
$ adb shell su -- dumpsys [option]
# dumpsys [option]
option 为已注册的服务
3
实现细节
 所有的dump信息都是由重载了Binder中的dump函数
的类来完成:
@Override
protected void dump(FileDescriptor fd,
PrintWriter pw, String[] args) {
...
}
 Dumpsys通过ServiceManager获取所有系统已注册服
务
 调用服务的dump方法
 服务重载了dump方法
 服务的proxy端和实现段都是继承自IBinder
4
实现细节
Binder IPC
Binder IPC
dumpsys
SurfaceFlinger
activity
...
listService
IService
IBinder
IBinder
Service
window
ServiceManager
dump
5
Android系统分析工具—dumpsys
 简介
 实现细节
 几个例子
 注意事项
6
几个例子
 Dumpsys meminfo
 Dumpsys diskstats
 Dumpsys SurfaceFlinger
 Dumpsys window input
7
Dumpsys meminfo
 Dumpsys meminfo
 Dumpsys meminfo –a
 Dumpsys meminfo <pid>
 Dumpsys –oom
 VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用
的内存)
 RSS - Resident Set Size 实际使用物理内存(包含共享
库占用的内存)
 PSS - Proportional Set Size 实际使用的物理内存(比例
分配共享库占用的内存)
 USS - Unique Set Size 进程独自占用的物理内存(不包
8
含共享库占用的内存)
Dumpsys diskstats
 这是一个简单的服务程序,提供功能仅为dump信息
9
Dumpsys SurfaceFlinger
 常用查看命令,查看系统display的状况
10
Dumpsys window input
 常用命令(整个window都是常用命令)
 查看系统输入子系统的状况
11
注意事项
 无需trace,非常方便监控关心的关键信息的值
 Android的服务基本都有dump信息,debug的利器,
效率极高(相比trace和断点调试)
 开发、维护人员需要经常使用并熟悉相关的表示
 适时扩展dump的输出及格式,方便适时调试。
 新增服务及接口,尽量实现此dump功能,以提高
debug效率。
 常用服务需要掌握调试技巧
12
 Thanks!
13