使用三级缓存目的
- 速度快,可以提升用户体验度
- 避免重复请求网络,重复加载,节省流量
三级缓存简介
- 内存缓存, 优先加载, 速度最快(加载到内存,就容易出现OOM)
- 本地缓存, 次优先加载, 速度快
- 网络缓存, 不优先加载, 速度慢,浪费流量
内存溢出OOM
-
Android默认给每个app只分配16M的内存(个别的不是)
-
java中的引用
- 强引用 垃圾回收器不会回收, java默认引用都是强引用
- 软引用 SoftReference 在内存不够时,垃圾回收器会考虑回收
- 弱引用 WeakReference 在内存不够时,垃圾回收器会优先回收
- 虚引用 PhantomReference 在内存不够时,垃圾回收器最优先回收
注意: Android2.3+, 系统会优先将SoftReference的对象提前回收掉, 即使内存够用
所以:一般都只使用强引用,弱引用太弱了