Android开发使用技巧AndroidAndroid开发经验谈

Android性能分析工具--Android Monitor

2017-09-14  本文已影响166人  芒果味的你呀

Android Studio 中Android Monitor 很强大,有5个模块,Memory、Network、logcat、CPU、GPU。

android monitor memory

这个可以检测内存泄漏,如果这个值稳定,没有很大的变动,说明没什么问题。

对于图中从左到右的四个五个按钮:第一个(Enabled)Memory的开关。如果选择关闭,则不对当前进程进行内存监测;第二个(Initiate GC)手动调用GC,我们在抓内存前,一定要手动点击 Initiate GC按钮手动触发GC,这样抓到的内存使用情况就是不包括Unreachable对象的;第三个(Dump Heap java)点击这个按钮的时刻,就在点击的时刻,将获取hprof文件(hprof文件也是我们使用MAT工具分析内存时经常使用的文件)若进行简单的数据分析用这个就可以,需要详细分析那么就得使用MAT工具,如图:

image.png

A 区域可以看类视图,class list view;或者包视图,package tree view。
B 区域对应的是A中选中类的实例对象。
C 区域是对应B中选中实例的引用链,dominating size可以看到占用的大小

第四个按钮(Start Allocaton Tracking)开始分配追踪,第一次点击可以指定追踪内存的开始位置,第二次点击可以结束追踪的位置。这样我们截取了一段要分析的内存,等待几秒钟AndroidStudio会给我们打开一个Allocation视图.

image.png

打开后我们可以看到各个线程中的方法所占用内存的大小


thread
image.png

第五个按钮就是跳转到官网说明的网页:https://developer.android.com/studio/profile/am-memory.html?utm_source=android-studio

Tx:上传网速
Rx:下载网速。

image.png

这个模块可以监控方法执行的时间轴,可以监测到每个方法的耗时,比较实用。

image.png image.png

我们可以看到每个方法的执行时间,也可以看到自己写的方法,
Inclusive time - 函数本身运行花费时间 + 函数调用其他函数时间
Exclusive time - 函数本身运行花费时间。
Invocation count - 是调用次数。
如果app卡顿现象,那么用此模块可以快速定位出比较耗时的方法。
Wall Clock Time 和Thread Time的区别是,Wall Clock Time 包括了Thread Sleep的时间,而Thread Time不包括。

分析GPU的性能,实时查看绘制每一帧所花费的时间:https://developer.android.com/studio/profile/am-gpu.html

image.png
上一篇下一篇

猜你喜欢

热点阅读