OOM
目录
OOM
啥情况会出现
- 图片视频等大量消耗内存的场景
onDraw()
里创建了大量对象- 内存泄漏导致占用内存大, 空闲内存不足导致 OOM (LeakCanary)
- 布局层级太深
咋办?
- 使用尽可能少的图片, 不用的图片及时回收或放入
LRU
- 使用对象池复用一些对象
- 避免在
onDraw()
中创建对象 - 谨慎使用
static
对象 () - 数据库
cursor
不用时, 及时关闭 - 在一些情况下可以考虑更轻量的
SparseArray
,ArrayMap
用来替代HashMap
等 - 使用
ConstraintLayout
替代多层嵌套的布局