Android图片中的三级缓存,问什么要三级缓存,有哪些好处

Android图片中的三级缓存


为什么要使用三级缓存

  • 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了
  • 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响
  • 特别是,当我们想要重复浏览一些图片时,如果每一次浏览都需要通过网络获取,流量的浪费可想而知
  • 所以提出三级缓存策略,通过网络、本地、内存三级缓存图片,来减少不必要的网络交互,避免浪费流量

什么是三级缓存

  • 网络加载,不优先加载,速度慢,浪费流量
  • 本地缓存,次优先加载,速度快
  • 内存缓存,优先加载,速度最快

三级缓存原理

  • 首次加载 Android App 时,肯定要通过网络交互来获取图片,之后我们可以将图片保存至本地SD卡和内存中
  • 之后运行 App 时,优先访问内存中的图片缓存,若内存中没有,则加载本地SD卡中的图片
  • 总之,只在初次访问新内容时,才通过网络获取图片资源

内存 缓存的时候 回出现内存溢出的情况,使用软引用,来处理,2.3以后不好用了

java语言提供了另一种机制:软引用 ,弱应用,虚拟引用

  • 虚拟机内存不足的时候,会回收软引用类型,
    • 当内存溢出的时候用
  • 弱引用:当对象没有应用的时候马上回收
  • 虚拟引用:任何情况下,都可能回收
  • java默认的数据类型是强引用

LruCache 现在的用这个解决内存缓存的LruCache

LruCache

facebook 的图片加载框架, 使用的是linux –内核中的匿名共享内存,避免出现三级缓存,内粗缓存,内存溢出的状况

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值