</br>
什么是LruCache
</br>
LruCache,Least Recently Used,“最近最少使用缓存”,是一种基于Lru算法实现的缓存机制。
它自Android3.1开始出现,通过support-v4兼容包可以兼容早期的Android版本。因此,如果需要兼容3.1以前的版本,建议使用v4兼容包中的LruCache,而不要直接使用Android3.1提供的LruCache。
</br>
LruCache是怎样工作的
</br>
Lru算法的原理:如果当前数据的量大于设定的最大值,则把最近最少使用的数据移除掉。这样就只保留最频繁使用的数据。
LruCache是一个泛型类,它内部采用一个LinkedHashMap以强引用的方法存储外界的缓存对象,其提供了get和put方法来完成缓存的获取和添加操作。当缓存满时,LruCache会移除较早使用的缓存对象,然后再添加新的缓存对象。
使用LinkedHashMap有两大好处:
一是它本身已经实现了按照访问顺序的存储。也就是说,最近读取的会放在最前面,最最不常读取的会放在最后(当然,它也可以实现按照插入顺序存储)。
第二,LinkedHashMap 本身有一个方法用于判断是否需要移除最不常读取的数,但是,原始方法默认不需要移除(这时,LinkedHashMap 相当于一个linkedlist),所以,我们需要 override 这样一个方法,使得当缓存里存放的数据个数超过规定个数后,就把最不常用的移除掉。
</br>