App开发总会遇到内存泄漏的情况,在Eclipse时代我们一般使用MAT来配合分析,Android Studio会方便一些,因为它自带了一个Monitor Memory。下面我们来看看怎么使用这个工具。
首先打开Monitor Memory工具
在Monitor Memory界面上,我们可以实时观察Memory、CPU等的使用情况。
在Memory面板上有两个图标(红圈中),第一个卡车的图标是GC功能,点击可以触发GC;第二个桶状的图标则是统计Memory并生成hprof文件。
我们一般会先触发一次GC,然后再生成hprof文件。hprof文件可以用MAT工具打开来进行分析,当然我们也可以利用Android Studio自带工具来查看。
点击桶状图标,会在Memory面板上显示一个位置,表示生成这个hprof文件的时间位置,如图
同时生成hprof文件并自动打开Android Studio自带的查看工具,如图
这里有三块区域:一区是当前内存中的所有数据类型的相关信息;二区是某个数据类型下的所有对象实例的相关信息;三区是某个对象事例的引用路径。
刚打开的时候,二区和三区是空白的。
当在一区中选中一个数据类型,会在二区中显示这个类型的所有对象实例(注意有的类型的total count是0,表示没有实例)
在二区中选中一个实例,会在三区中显示这个实例的所有引用路径。
通过观察引用路径来找到该实例未回收的原因。
Android Studio的工具用起来很方便,但是功能比较单一,仅仅是查看。所以如果不能很快查找到原因,建议使用MAT或其他一些强大的工具来分析。
网友评论