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