Universal-Image-Loader徹底解析--- 圖片緩存策略詳解 Android

內存緩存算法

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(這個緩存類沒有任何的限制)

相關文章
相關標籤/搜索