https://developer.android.com/studio/profile/am-memory.html?hl=zh-cn
studio上有一个测试实时内存的小工具,简单介绍一下。
1. Memory monitor的作用
以时间为横轴显示当前可用的和已分配的java存储器的曲线图。
显示垃圾回收(GC)随着时间的推移的事件。
启动垃圾收集事件。
快速测试应用运行卡顿是否跟过多的GC有关。
快速测试应用的崩溃是否可能与内存溢出有关。
2. Android monitor面板
3. 如何使用
1. 安装并打开android studio,如果有要测试的应用的源码,最好import进来并build成功
2. 手机开启usb调试,并开启root权限
3. 连接手机,在studio里面勾选Tools-Android-Enable ADB Integration
4. 点击studio底部的Android Monitorss
5. 切换到memory tab查看
4. Memory monitor的作用
android monitor的面板总共有4个monitor,分别是memory monitor,CPU monitor, Network monitor GPU monitor,这一次我们主要介绍memory monitor
从上图可以看出来,memory monitor的横轴是时间轴,纵轴便是内存的情况,标蓝色的区域表示当前占用的内存。
上面有4个按钮,依次是暂停按钮,GC按钮,dump java heap按钮和start allocation tracking按钮。
暂停按钮:停止内存检测
GC:手动调用GC,我们在抓内存前,一定要手动点击 Initiate GC按钮手动触发GC,这样抓到的内存使用情况就是不包括Unreachable对象的(Unreachable指的是可以被垃圾回收器回收的对象,但是由于没有GC发生,所以没有释放,这时抓的内存使用中的Unreachable就是这些对象)
Dump java heap:点击生成.hprof文件,文件用hprof-conv转后可以用studio查看,其他博文里讲过
start allocation tracking:开始分配追踪,第一次点击可以指定追踪内存的开始位置,第二次点击可以结束追踪的位置。这样我们截取了一段要分析的内存,等待几秒钟AndroidStudio会给我们打开一个Allocation视图(感觉和MAT工具差不多,不过MAT工具更加强大,我们也可以获取hprof文件,使用MAT来分析)、
5. momory monitor可以发现的问题
1. 内存抖动
2. 查看大内存分配的场景
3. 发现内存不断增长的场景
4. 确认应用卡顿是否是因为执行gc导致