前言:应用开发后期会会对应用做性能优化,此时肯定会伴随内存抖动,内存泄漏,内存溢出等问题,此时就会对这些问题进行排查分析,记录一下这些问题的的本质,产生的原因,处理方法(LeakCanary)
本质
- 开发者在前期开发过程中,未能合理的创建和及时的销毁对象,导致应有出现卡顿,内存增加,anr等问题
产生原因
- 内存抖动:指在短时间内有大量的对象被创建或者被回收的现象
- 内存泄漏:一个长生命周期的对象持有了一个短生命周期的对象的引用,无法得到释放
- 内存溢出:为对象申请不到足够的内存空间了
处理方法
-
LeakCanary
- as自带工具,包含内存,网络等检测工具
举例说明
- 内存抖动:ondraw()方法中创建对象
- 内存泄漏:activity中创建非静态hander内部类
- 内存溢出:快速大量创建对象且不及时回收,内存在现在的硬件基础很少见了,主要是手机硬件基础高,且分配内存机制优化等