1. Android Profiler
Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具。Android Profiler 工具可提供实时数据,帮助您了解应用的 CPU、内存、网络和电池资源使用情况。
使用方法也可参考:https://developer.android.com/studio/profile/memory-profiler?hl=zh-cn
本文简单记录实际使用的示例
1.1 使用
1.1.1 打开
使用如下方式打开Profiler
或者从Android Studio的安装目录中打开单独的Profiler应用
如下所示
1.1.2 连接adb
如果您通过 USB 连接了某个设备但系统未列出该设备,请确保您已启用 USB 调试。如果您使用的是 Android 模拟器或已取得 root 权限的设备,Android Profiler 将列出所有正在运行的进程,即使这些进程可能无法调试也会列出。当您启动可调试的应用时,默认情况下会选择该进程。
使用adb 连接开发板
adb connect <ip_addr>
1.1.3 新建一个session
会显示CPU、内存、网络和能耗四个东西,
1.1.4 分析
点击内存,进入内存详细使用界面,可以使用左侧的功能来捕获堆转储,堆转储显示在您捕获堆转储时您的应用中哪些对象正在使用内存,选择按包名排序
完成后会自动显示,可以选择我们自己的程序,查看时哪些对象在使用内存。
Heap Dump 右边四列的意思分别如下,一般情况下,如果Shallow Size和Retained Size都非常小并且相等,都可以认为是已经被回收的对象。
- Allocations:Java堆中的实例个数
- Native Size:native层分配的内存大小。
- Shallow Size:Java堆中分配实际大小
- Retained Size:这个类的所有实例保留的内存总大小(并非实际大小)
我们点击instance list中的对象,会在右侧显示这个instance的detail信息
Reference显示对这个对象的引用
评论 (0)