系统相关
首页 > 系统相关> > Android内存泄漏 java内存分析

Android内存泄漏 java内存分析

作者:互联网


1.打开AndroidStudio的Profile

1.在菜单栏依次点击 View > Tool Windows > Profiler
2.在Profile窗口点击左上角的"+"图标,添加要分析的进程

在这里插入图片描述

3.点击MEMORY进入内存详情界面
如下图所示一个应用的内存包括:java,native,graphics,stack,code,other,我们这次只对java的内存进行分析

在这里插入图片描述

2.抓取内存快照

1.通过复现步骤操作相应的应用,然后观察Profile中内存增长的情况
2.待内存出现很明显的增长,并且多次点击上方的"GC"图标,内存还是有明显增长,则可以抓取内存快照进行分析了
3.通过命令抓取内存快照1.hprof文件,并从设备中导出
adb shell am dumpheap com.sohu.inputmethod.sogou.tv /data/local/tmp/1.hprof
adb pull /data/local/tmp/1.hprof ./my_file

3.内存分析

1.进入Sdk/platform-tools目录下
2.通过命令hprof-conv 1.hprof 1_mat.hprof对文件进行转换
3.然后通过Memory Analyzer Tool工具进行分析,或者将1_mat.hprof文件拖拽到eclipse,会提示安装MAT插件,待安装完成即可打开hprof文件
4.如下图所示,为内存快照的总览

在这里插入图片描述

5.选择Leak Suspects,查看可能出现的内存泄漏的地方

在这里插入图片描述

6.点击Problem Suspect下的"Details"进入查看可能出现的泄漏对象
如下图所示这个是一个JNI对应,由于其比较大,有可能会导致内存溢出,如果在应用退出时将其创建的内存释放,则就没有问题

在这里插入图片描述

标签:快照,抓取,hprof,点击,内存,java,Android
来源: https://blog.51cto.com/u_15091798/2782922