图片缓存优化

二级缓存

        说下需要显示一张图片所经历的逻辑,你就一清二楚了:

  需要显示图片 ——> 

查内存(有的话显示) —没有—>

查磁盘(有的话显示) —没有

从网络加载 (显示出来) ——> 

往内存中存一份  ——>  往磁盘存一份


从上我们知道,缓存有两种,内存缓存和磁盘缓存(SD卡/机身存储):

内存缓存:一级缓存,优先从这里拿,缓存文件存储在data/data/包名/cache目录下

以前写内存缓存的老旧套路是用Map弱引用的Bitmap对象,而Google老东家并不建议

这样做,官方最佳实践中给我们推荐了关于缓存的两个API: LruCache(内存缓存) 

和 DiskLruCache(磁盘缓存) LruCache是以强引用(直接引用)的方式引用外界的缓存对

象的,不会被GC回收, 而SoftReference引用,当系统内存不足的时候回随GC回收 还

有个WeakRefreence,随时都可能会被系统回收... 如果你对这个很有兴趣,可移步到

官方的最佳实践:Caching Bitmaps

磁盘缓存


























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值