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