Android 内存优化与OOM简单分析理解

借助网上一些大佬的学习视频,对OOM作一个整理。

 

一、OOM的产生

  •       已使用内存 + 新申请内存 > 可分配内存
  •      几乎涵盖所有的内存,通常指导堆内存
  •      Native Heap只在在物理内存不够时才会报OOM

 

二、如何防止OOM的发生呢?

1、合理的使用数据结构,比如HashMap,AarryMap, SparseArray

Android 内存优化与OOM简单分析理解

2、避免使用枚举类型,因为枚举类型占用内存大

Android 内存优化与OOM简单分析理解

3、合理的使用Bitmap

  • 尽量根据实际需求选择合适分辨率
  • 注意原始图片分辨率与内存的缩放
  • 尽可能不使用Frame动画
  • Bitmap采样和复用配置

4、谨慎使用多进程,多进程会额外开销不少内存

Android 内存优化与OOM简单分析理解

5、谨慎使用largeHeap配置

Android 内存优化与OOM简单分析理解

6、使用NDK

Android 内存优化与OOM简单分析理解

三、方法论总结

腾讯大佬总结的5R法则

Android 内存优化与OOM简单分析理解

四、资源引用

最后附上网上一些不错的博客。

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