博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开源框架:Universal-Image-Loader解析(二)MemoryCache
阅读量:5303 次
发布时间:2019-06-14

本文共 971 字,大约阅读时间需要 3 分钟。

从图中的关系可得知,对于内存缓存主要考虑的是:缓存空间大小,缓存时图片对象的大小,缓存图片存在时间长短,缓存图片的顺序,

时间,空间,大小,顺序

 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)

转载于:https://www.cnblogs.com/luow/p/4487922.html

你可能感兴趣的文章
Hadoop HDFS源码分析 读取命名空间镜像和编辑日志数据
查看>>
mruby看起来挺不错
查看>>
jQuery操作编辑页面,span与input标签之间的随时转换
查看>>
面向amd64的XXX与与项目的目标平台“x86”不兼容
查看>>
5句mysql语句
查看>>
const成员函数
查看>>
hdu2429Ping pong
查看>>
***-低调使用
查看>>
Python---xml
查看>>
网络协议
查看>>
【poj2367】Genealogical tree
查看>>
Alpha 冲刺 (6/10)
查看>>
error C2512: “Name”: 没有合适的默认构造函数可用
查看>>
《算法导论》习题解答 Chapter 22.1-3(转置图)
查看>>
Delphi GDI对象之位图与调色板
查看>>
190. Reverse Bits
查看>>
CMS: 内容管理系统
查看>>
pscp命令详解
查看>>
Linux系统目录结构
查看>>
新浪新闻采集程序
查看>>