从图中的关系可得知,对于内存缓存主要考虑的是:缓存空间大小,缓存时图片对象的大小,缓存图片存在时间长短,缓存图片的顺序,
即时间,空间,大小,顺序
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.当缓存控件已满时,会删除图片中最大的对象-->value3.但是在仍然存在BaseMemoryCache的软引用中(会随时被GC)UsingFreqLimitedMemoryCache:
1.有限的缓存,强引用,key:图片对象,value:图片的大小2.当缓存超过限制时,会删除最近最少使用的对象3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)FIFOLimitedMemoryCache:
1.有限的缓存,强引用,双向列表 value:图片2.当缓存超过限制时,会按照先进先出的规则清除缓存的图片对象3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)