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(这个缓存类没有任何的限制)

相关文章
相关标签/搜索