美文网首页应用层的知识归纳
Android图片三级缓存技术

Android图片三级缓存技术

作者: WangSins | 来源:发表于2018-10-29 15:51 被阅读41次
图片的三级缓存
  1. 内存缓存,缓存的是Bitmap对象,用Map<String,Bitmap>结构缓存,key是url
  2. 本地(sd卡)缓存,缓存的是图片文件,storage/sdcard/Android/data/pakageName/files/图片文件名(xxx.jpg)
  3. 远程服务器缓存,缓存的是图片文件,远程服务器应用中
如何使用三级缓存?
  1. 根据url从一级缓存中去对应Bitmap对象
    如果有:显示结束(结束)
    如果没有:进入2
  2. 从二级缓存中查找:得到文件名并在SD卡缓存目录下加载图片文件得到Birmap对象
    如果有:显示,缓存到一级缓存中(结束)
    如果没有:进入3
  3. 显示代表提示正在加载的图片,启动分线程联网请求得到Bitmap对象
    如果有:显示,缓存到一级缓存,缓存到二级缓存
    如果没有:显示提示错误图片(结束)
在ListView中使用图片三级缓存会存在图片闪动bug
  • 原因
    converView被复用了
  • 解决
  1. 每次getView()都将图片的url保存到ImageView上:imageView.setTag(imagPath)
  2. 在分线程准备请求加载图片之前,比较准备加载图片的url与ImageView中保存的最新图片的url是同一个,
    如果不是同一个,当前加载图片任务不再执行
    如果相同,继续执行加载远程图片
  3. 在主线程准备显示图片之前,比较加载到图片的url与ImageView中保存的最新图片url时同一个,
    如果不是同一个,不需要显示此图片
    如果相同 ,显示图片

相关文章

  • Android 图片三级缓存 _内存缓存LruCache

    本文目标 理解Android图片三级缓存机制,并重点理解内存缓存 (LruCache算法) 图片的缓存技术分为三级...

  • android图片的三级缓存策略和LruCache(面试必看)

    原理 Android图片三级缓存的原理如下图所示: 可见,Android中图片的三级缓存主要是强引用、软银用和文件...

  • Android图片三级缓存总结

    Android图片中的三级缓存 为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络...

  • 图片三级缓存的原理

    三级缓存的概念## 内存 > 硬盘 > 网络 由内存、硬盘、网络缓存形成。 关于三级缓存用到的技术 Android...

  • 图片缓存

    参考:内存缓存LruCache实现原理Android中图片的三级缓存策略Android官方教程:保存到文件andr...

  • Android图片三级缓存技术

    图片的三级缓存 内存缓存,缓存的是Bitmap对象,用Map 结构缓存,key是url 本地(sd卡)缓存,缓存的...

  • LruCache

    1.三级缓存 ⑴为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常...

  • Android 学习笔记之图片三级缓存

    最近在学习的时候接触到Android对图片的获取途径,写一篇笔记记录一发。 什么是图片三级缓存 三级缓存指的是内存...

  • 内存优化

    如何获取Android系统中申请对象的信息 [译]Android内存泄漏的八种可能 Android中图片的三级缓存

  • 浅谈图片加载的三级缓存

    浅谈图片加载的三级缓存 之前被人问及过,图片的三级缓存是什么啊,来给我讲讲,图片三级缓存,好高大尚的名字,听着挺厉...

网友评论

    本文标题:Android图片三级缓存技术

    本文链接:https://www.haomeiwen.com/subject/jywbtqtx.html