xUtils 中的 BitmapUtils

Posted 韩亚飞_yue31313_韩梦飞沙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xUtils 中的 BitmapUtils相关的知识,希望对你有一定的参考价值。

 韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha

xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。

 

 BitmapUtils内存缓存的核心类LruMemoryCache,LruMemoryCache代码和v4包的LruCache一样,只是加了一个存储超期的处理,这里分析LruCache源码。LRU即Least Recently Used,近期最少使用算法。也就是当内存缓存达到设定的最大值时将内存缓存中近期最少使用的对象移除,有效的避免了OOM的出现。
 
        讲到LruCache不得不提一下LinkedHashMap,因为LruCache中Lru算法的实现就是通过LinkedHashMap来实现的。LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHashMap(int initialCapacity,float loadFactor, boolean accessOrder)指定。所以,对于get、put、remove等操作,LinkedHashMap除了要做HashMap做的事情,还做些调整Entry顺序链表的工作。LruCache中将LinkedHashMap的顺序设置为LRU顺序来实现LRU缓存,每次调用get(也就是从内存缓存中取图片),则将该对象移到链表的尾端。调用put插入新的对象也是存储在链表尾端,这样当内存缓存达到设定的最大值时,将链表头部的对象(近期最少用到的)移除。

以上是关于xUtils 中的 BitmapUtils的主要内容,如果未能解决你的问题,请参考以下文章

xUtils

xUtils怎样通过注解对FindViewById进行封装

XUtils===XUtils3框架的基本使用方法

Android 最火开发框架 xUtils

xUtils3

xUtils3源码阅读之网络模块