Android 内存优化与OOM简单分析理解
借助网上一些大佬的学习视频,对OOM作一个整理。
一、OOM的产生
- 已使用内存 + 新申请内存 > 可分配内存
- 几乎涵盖所有的内存,通常指导堆内存
- Native Heap只在在物理内存不够时才会报OOM
二、如何防止OOM的发生呢?
1、合理的使用数据结构,比如HashMap,AarryMap, SparseArray
2、避免使用枚举类型,因为枚举类型占用内存大
3、合理的使用Bitmap
- 尽量根据实际需求选择合适分辨率
- 注意原始图片分辨率与内存的缩放
- 尽可能不使用Frame动画
- Bitmap采样和复用配置
4、谨慎使用多进程,多进程会额外开销不少内存
5、谨慎使用largeHeap配置
6、使用NDK
三、方法论总结
腾讯大佬总结的5R法则
四、资源引用
最后附上网上一些不错的博客。
https://blog.****.net/he_world/article/details/51235495
http://hukai.me/blog/archives/
Android Performance Patterns Season youtube上看不了,发现Youku上面有。
https://v.youku.com/v_show/id_XODk2NjkwNjM2.html?f=23494296&from=y1.2-3.4.1