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