内存泄露优化
分为两个方面:
- 开发过程中尽量避免写出有内存泄露
- 通过一些分析工具(比如MAT)来找出潜在的内存泄露
泄露场景
静态变量导致的内存泄露
Activity被引用,无法正常销毁
- Activity当中包含静态变量context
- Activity当中包含静态变量view
单例模式导致的内存泄露
自己去查吧,不好写
属性动画导致的内存泄露
举例:
属性动画中有一类无限循环的动画,如果在Activity中播放此类动画且没有在onDestory中取钱停止动画,那么动画会一直播放下去,尽管已经无法在介面上看到动画效果了,但是Activity的View会被动画持有,而View持有Activity,最终Activity无法释放。
解决:
在Activity的onDestroy中调用animator.cancel()来停止动画。
其他各种可能内存泄露
ViewPager自动轮播
Fragment