android学习之内存泄露(占位)

最近工作接触了很多内存泄漏的问题,希望写这篇文章来记录一下一些查找和解决内存泄露问题的方法技巧,算是对这段时间的一些总结,希望能更深入理解内存泄露的相关原理,也方便以后的工作。

1、java内存分布

android学习之内存泄露(占位)_第1张图片

2、什么是内存泄露

3、内存泄露的测试

本人采用的方法是自动化测试,使用自动化工具,写好测试脚本,反复某个路径测试,用下面的adb命令实时监控进程使用的内存

①Adb shell ps | grep email 获取email进程的pid

②while true;do dumpsys meminfo pid | grepTOTAL;sleep 1;done;

使用MAT

使用leakcanary

4、内存泄露的解决

方法一:用getApplicationContext()代替context

方法二:使用弱连接

5、内存泄露实践

inputMethodManager内存泄露

context内存泄露

handler内存泄露

单实例内存泄露



参考:

https://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/

https://drakeet.me/android-leaks

你可能感兴趣的:(android学习之内存泄露(占位))