內存緩存算法
Universal-Image-Loader有哪些內存緩存策略緩存
1. 只使用的是強引用緩存 框架
LruMemoryCache(這個類就是這個開源框架默認的內存緩存類,緩存的是bitmap的強引用,下面我會從源碼上面分析這個類)spa
2.使用強引用和弱引用相結合的緩存有orm
UsingFreqLimitedMemoryCache(若是緩存的圖片總量超過限定值,先刪除使用頻率最小的bitmap)對象
LRULimitedMemoryCache(這個也是使用的lru算法,和LruMemoryCache不一樣的是,他緩存的是bitmap的弱引用)圖片
FIFOLimitedMemoryCache(先進先出的緩存策略,當超過設定值,先刪除最早加入緩存的bitmap)內存
LargestLimitedMemoryCache(當超過緩存限定值,先刪除最大的bitmap對象)源碼
LimitedAgeMemoryCache(當 bitmap加入緩存中的時間超過咱們設定的值,將其刪除)it
3.只使用弱引用緩存
WeakMemoryCache(這個類緩存bitmap的總大小沒有限制,惟一不足的地方就是不穩定,緩存的圖片容易被回收掉)
硬盤緩存
接下來就給你們分析分析硬盤緩存的策略,這個框架也提供了幾種常見的緩存策略,固然若是你以爲都不符合你的要求,你也能夠本身去擴展
FileCountLimitedDiscCache(能夠設定緩存圖片的個數,當超過設定值,刪除掉最早加入到硬盤的文件)
LimitedAgeDiscCache(設定文件存活的最長時間,當超過這個值,就刪除該文件)
TotalSizeLimitedDiscCache(設定緩存bitmap的最大值,當超過這個值,刪除最早加入到硬盤的文件)
UnlimitedDiscCache(這個緩存類沒有任何的限制)