1.在菜单栏依次点击 View > Tool Windows > Profiler
2.在Profile窗口点击左上角的"+"图标,添加要分析的进程
2.抓取内存快照3.点击MEMORY进入内存详情界面
如下图所示一个应用的内存包括:java,native,graphics,stack,code,other,我们这次只对java的内存进行分析
3.内存分析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
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对应,由于其比较大,有可能会导致内存溢出,如果在应用退出时将其创建的内存释放,则就没有问题