之前写过一篇 什么是缓存?接下来我们详细介绍一下LruCache
LruCache:LRU是最近最少使用的算法,它的核心思想是当缓存满时,会优先淘汰那些最近最少使用的缓存对象。
采用LRU算法的缓存有两种:LruCache和DisLruCache,分别用于实现内存缓存和硬盘缓存,其核心思想都是LRU缓存算法。
LruCache底层是LinkedHashMap实现的,对LruCache不是很了解的可以看看 什么是缓存?,对应的代码可以敲一下,运行一下。
上边说到LruCache,我们就对应说一下Android的三级缓存:LruCache(内存缓存)、DisLruCache(硬盘缓存)、网络缓存。
内存:优先加载, 速度最快。
硬盘:次优先加载, 速度快。
网络:不优先加载, 速度慢,浪费流量。
以图片加载框架为例:
当我们想要重复浏览一些图片时,就是通过三级缓存策略,通过网络、本地、内存三级缓存图片,来减少不必要的网络交互,避免浪费流量。取得时候先从内存中去,没有的时候就去本地硬盘中去取,在没有的时候,就会通过网络获取。