Android开源框架:Universal-Image-Loader解析(二)MemoryCache
从图中的关系可得知,对于内存缓存主要考虑的是:缓存空间大小,缓存时图片对象的大小,缓存图片存在时间长短,缓存图片的顺序,
即时间,空间,大小,顺序
MemoryCache:定义基本操作
BaseMemoryCache:Reference引用,key:图片对象,value:图片引用
LimitedAgeMemoryCache:
1.缓存大小不受限,强引用,key:图片对象,value:图片放入时的当前系统时间
2.当图片对象超过其能生存的最长时间,会被删除
LruMemoryCache: 系统LruCache的精简版
WeakMemoryCache:对缓存的图片使用WeakReference
LimitedMemoryCache(抽象类):
1.有限的缓存,强引用,双向列表 value:图片
2.当缓存超过限制时,会按照先进先出的规则清除缓存的图片对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)
LRULimitedMemoryCache:
1.有限的缓存,强引用,key:图片对象,value:图片使用次数
2.当缓存超过限制时,会删除使用次数最少的对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)
LargestLimitedMemoryCache:
1.强引用,key:图片对象,value:图片的大小
2.当缓存控件已满时,会删除图片中最大的对象-->value
3.但是在仍然存在BaseMemoryCache的软引用中(会随时被GC)
UsingFreqLimitedMemoryCache:
1.有限的缓存,强引用,key:图片对象,value:图片的大小
2.当缓存超过限制时,会删除最近最少使用的对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)
FIFOLimitedMemoryCache:
1.有限的缓存,强引用,双向列表 value:图片
2.当缓存超过限制时,会按照先进先出的规则清除缓存的图片对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)
Android开源框架:Universal-Image-Loader解析(二)MemoryCache的更多相关文章
- Android开源库--Universal Image Loader通用图片加载器
如果说我比别人看得更远些,那是因为我站在了巨人的肩上. github地址:https://github.com/nostra13/Android-Universal-Image-Loader 介绍 ...
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...
- Android 开源框架Universal-Image-Loader全然解析(二)--- 图片缓存策略具体解释
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...
- Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/39057201),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...
- Android 开源框架Universal-Image-Loader学习
Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二)--- 图片 ...
- Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
原文地址: Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二) ...
- [转]Android开源框架ImageLoader的完美例子
Android开源框架ImageLoader的完美例子 2013年8月19日开源框架之Universal_Image_Loader学习 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片, ...
- 值得推荐的android开源框架
1.volley 项目地址https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) ...
- 6个值得推荐的Android开源框架简介(转)
虽然我们在做app的时候并不一定用到框架,但是一些好框架的思想是非常有学习价值的 1.volley 项目地址 https://github.com/smanikandan14/Volley-demo ...
- android开源框架
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
随机推荐
- openssl pem 生成公钥和私钥及文件
openssl pem.h 中提供了关于pem格式密钥对的操作接口 通常使用.pem的格式文件来保存openssl 生成的密钥对: 在终端下 cat xxx.pem 可以看到 p.p1 { margi ...
- GO语言学习
1. 语言特色 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了. 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多 ...
- MySql学习(五) —— 数据库优化理论篇(一)
一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1 ...
- CASS 2008的野外操作码
表D-1 线面状地物符号代码表 坎类(曲): K(U) + 数(0-陡坎,1-加固陡坎,2-斜坡,3-加固斜坡,4-垄,5-陡崖,6-干沟) 线类(曲): X(Q) + 数(0-实线,1-内 ...
- hdoj 5124lines
题意:给你n条线段,求被最多的线段覆盖的点被覆盖的次数 解法:我们可以将一条线段[xi,yi]分为两个端点xi和(yi)+1,在xi时该点会新加入一条线段,同样的,在(yi)+1时该点会减少一条线段, ...
- ECMAScript6 面向对象 时钟效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- [css3]跑马灯
<div class="marquee"> <div> <p>纯CSS3生成的走马灯效果</p> <p>纯CSS3生成的 ...
- java筛选法求素数
这本身没什么,代码一堆 发来纪念下而已 本来刚学习java,编写输出100以内的素数 对于我这个有代码运行性能洁癖的人(但是本身又不懂算法)来说,不能忍 于是看了些资料 参考: http://blog ...
- 不一样的Android选择器,简单方便,地址日期时间都好用!
前言 Android开发有不少情况下会用到Picker,例如选择 地址.日期.时间. 原生Picker和仿iOS的Picker都是上下或左右滑动到固定区域来选择选项: 显示数量少,如果当前选项距离需要 ...
- [翻译]PYTHON中如何使用*ARGS和**KWARGS
[翻译]Python中如何使用*args和**kwargs 函数定义 函数调用 不知道有没有人翻译了,看到了,很短,顺手一翻 原文地址 入口 或者可以叫做,在Python中如何使用可变长参数列表 函数 ...