验证Glide图片异步缓存,再次打开程序优先从内存/磁盘中加载图片
来源:互联网 发布:顺丰速运成本数据分析 编辑:程序博客网 时间:2024/05/16 17:02
关于图片的缓存,有多种实现方式:
自己编写实现:
AsyncTask+LruCache+SD卡缓存
AsyncTask他内部是维护了一个handler和线程池的。ExecutorService +LruCache+SD卡
ExecutorService 线程池,可以自己指定需要几个线程任务。- Thread+lruCache+sd卡
这种方式不建议用,Thread去下载图片,每次下载图片都要new Thread去下载,而且还是并发去下载,每次都new 一个线程浪费内存。不知道你家的服务器受得了吗!
第三方开源库(就不多说介绍了)
之所以写本文,是自己突然想去验证下。
大家肯定知道有很多开源库,本文主要是验证:验证Glide图片异步缓存,再次打开程序优先从内存/磁盘中加载图片
准备工作
- 准备一个URL数组(真实环境可定需要请求网络拿到的,这里这样做只是为了验证:看清楚本文的标题哦)
public final static String[] imageThumbUrls = new String[] { "http://img.mukewang.com/55237dcc0001128c06000338.jpg", "http://img.mukewang.com/55249cf30001ae8a06000338.jpg", "http://img.mukewang.com/5523711700016d1606000338.jpg", "http://img.mukewang.com/551e470500018dd806000338.jpg", "http://img.mukewang.com/551de0570001134f06000338.jpg", "http://img.mukewang.com/552640c300018a9606000338.jpg", "http://img.mukewang.com/551b92340001c9f206000338.jpg", "http://img.mukewang.com/5518c3d7000175af06000338.jpg", "http://img.mukewang.com/551b98ae0001e57906000338.jpg", "http://img.mukewang.com/550b86560001009406000338.jpg", "http://img.mukewang.com/551916790001125706000338.jpg", "http://img.mukewang.com/5518ecf20001cb4e06000338.jpg", "http://img.mukewang.com/551380400001da9b06000338.jpg", "http://img.mukewang.com/550a33b00001738a06000338.jpg", "http://img.mukewang.com/5513a1b50001752806000338.jpg", "http://img.mukewang.com/5513e20600017c1806000338.jpg", "http://img.mukewang.com/5518ecf20001cb4e06000338.jpg", "http://img.mukewang.com/551916790001125706000338.jpg", "http://img.mukewang.com/550a87da000168db06000338.jpg", "http://img.mukewang.com/530f0ef700019b5906000338.jpg", "http://img.mukewang.com/549bda090001c53e06000338.jpg", "http://img.mukewang.com/547d5a45000156f406000338.jpg", "http://img.mukewang.com/54780ea90001f3b406000338.jpg", "http://img.mukewang.com/547ed1c9000150cc06000338.jpg", "http://img.mukewang.com/54214727000160e306000338.jpg", "http://img.mukewang.com/54c87c73000150cf06000338.jpg", "http://img.mukewang.com/548165820001b4b006000338.jpg", "https://lh4.googleusercontent.com/-e9NHZ5k5MSs/URqvMIBZjtI/AAAAAAAAAbs/1fV810rDNfQ/s160-c/Yosemite%252520Tree.jpg", };
- Glide实现加载图片,并作内存缓存+硬盘缓存
ImageView image = holder.image; GlideUtils.glides(ctx,imageThumbUrls[position],image);
public class GlideUtils { public static void glides(Activity activity, String url, ImageView imageView){ Glide.with(activity) .load(url) .skipMemoryCache(false) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .into(imageView); }}
验证具体流程
验证方式:写一个url数组,在手机有网络的情况下运行程序,然后查看data/data/+自己包名(默认在这里,手机root才能看,模拟器是root的)下时候有缓存数据,然后把把网断掉,在运行程序,图片正常显示,验证成功、
再次验证,清空数据,先把网断掉,运行程序加载不出来,打开网络运行,图片加载出来,查看data目录有数据,再次断开网络,运行图片正常加载。
结果证明:glide缓存图片,再次打开程序,是优先加载缓存的图片的。(glide内部已处理好)
- 缓存的还是图片,只是后缀名变了。仍然可以用图片查看器查看
最后把缓存的数据压缩一下导出来,看看是否能打开!
- 把缓存图片的目录压缩一下
- 导出来解压
- 最后选择一个用画图工具打开:
最后结果证明本文标题!
0 0
- 验证Glide图片异步缓存,再次打开程序优先从内存/磁盘中加载图片
- 异步图片加载、内存、磁盘缓存
- Glide(图片异步加载缓存库)的方法介绍
- Glide加载图片并实现图片缓存
- 从内存中加载图片
- Android ListView 图片异步加载和图片内存缓存
- Android ListView 图片异步加载和图片内存缓存机制
- Android ListView 图片异步加载和图片内存缓存
- Android ListView 图片异步加载和图片内存缓存
- Android ListView 图片异步加载和图片内存缓存
- Android ListView 图片异步加载和图片内存缓存
- Glide 加载内存中已经加载的图片
- Android之ListView异步加载网络图片(优化缓存机制)和对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存
- libgdx中异步从网络加载图片
- 从网络异步加载listView中图片
- 基于Glide 4.4 实现加载进度监听 超大图片显示 自定义磁盘缓存路径
- Android图片异步加载框架Glide用法
- Android图片加载缓存框架Glide
- ueditor上传文件
- ios
- 【DWZ】表单验证规则介绍,与如何修改表单验证,如何添加自定义表单验证
- cocos中 使用websocket
- requirejs模块依赖
- 验证Glide图片异步缓存,再次打开程序优先从内存/磁盘中加载图片
- 批量删除C#注释(适用于vs开发环境)
- java MyBatis报错Parameter Maps collection does not contain value for xxx
- centos7下安装tomcat apr
- String.indexof(str)的用法
- 不要再使用MD5和SHA1加密密码了!
- 4、重建二叉树
- lettcode189Rotate Array
- Linux问题集