使用Android Studio快速查找内存泄漏

1,什么是内存泄漏?
1)内存泄漏和内存溢出
2)垃圾内存

2,怎么回收垃圾内存
1)C语言手动分配和回收
2)java 设计了GC垃圾回收机制

3,GC判断垃圾内存的策略是什么
1)内存泄漏是一种主管的人为失误造成的
2)java的GC回收机制:莫对象不再有任何的引用的时候才会进行回收
提问:反过来如果莫对象被别的对象引用了就不能被GC回收吗?
答:否 无法往上追溯到GCroot 引用点的
软引用,虚引用,弱引用

可以作为GC root 引用点的是
javastack中的引用的对象
方法区中静态引用指向的对象

Memory Analyzer网盘链接

 

链接:https://pan.baidu.com/s/1c-u8sn6nhBCRCy3sStcB6Q
提取码:gsb0

 

1,打开Android Studio 快速查看内存泄漏

adb shell dumpsys meminfo com.well10.ui -d ( 为包名)

 

当前泄漏 149 数字越大泄漏越多 

2,在Terminal运行

adb shell monkey -p com.well10.ui -v 1000000

 

 

3,在右上角点击Profile图标

 

 

4,勾选正在运行的包名

 

 

5,点击MEMORY

 

6,先点击删除图标在点击下载图标

 

 

7,勾选Arrange by Package 快速查找包名所在位置

 

 

8,以查找到泄漏112数量

 

9,以上是快速得出结果,点击下载图标 Heap Dump 

 

10,保存,也可以保存到其他目录

 

11,找到你刚刚保存的路径,把文件与路径合并

12,使用 hprof-conv -z (跟上你刚刚合并的文件路径.hprof),在跟上你合并的文件路径,在后面添加容易识别的数字!在按 Enter键,

 

13,打开 Memory Analyzer软件上面有网盘链接,

 

14,打开之后点击 File 在点击 Open Heap Dump下拉框 由于截不了图,

15,点击之后会弹框出来!点击你刚刚创建的容易识别的文件

 

 

16,此时会弹框点击Finish

 

 

17,点击Overview,在点击Histogram

 

 

18  点击Group result by 图标

 

19 ,勾选 Group by Package 下拉框截不了图,也就是最后一个

 

20,找到包名!也许你的包名与我的不一样

21,右击勾选

23,自己与开发一起分析结果!我自己也不会了!

posted @ 2020-06-16 14:27  酷酷的小庄  阅读(1871)  评论(0编辑  收藏  举报
/* 鼠标点击求赞文字特效 */