Universal-Image-Loader图片缓存架构

2022-11-30 10:12:05 浏览数 (1)

图片缓存的机制

大家都知道如果一直浏览网站,内存没处理的话会出现内存溢出的情况。今天就讲一下图片中内存是如何进行管理的。

首先Android中最经常用的就是Universal-Image-Loader图片缓存架构来解决图片浏览是内存溢出等问题。那它的工作原理及工作过程是怎样的呢?

该缓存架构分为三级缓存分别是1.强引用缓存2.软引用缓存3.离线缓存

1.强引用缓存 为了保证稳定性,不会被垃圾回收器不定期回收,宁愿抛出OOM(内存溢出bug)而且用LinkedHashMap(String,BItMap)来存储。

其中String中存放图片的URL,因为该LinkedHashMap里面含有LRU(近期最少使用)算法所以不用HashMap来实现。

在强引用缓存中可以设置放置的图片数,超过的图片会从强引用缓存中移除加入到软引用缓存中。

2.软引用缓存 存放一些不经常使用的对象,单内存不足的时候会被垃圾回收器直接回收清空。利用ConcurrentHashMap(String,SoftRefrence(BitMap))来存储。

其中String中放置URL路径,SoftRefrence(BitMap)放置图片对象的软引用。

3.离线缓存 把文件进行持久化,放置到本地硬盘里实现本地存现。

0 人点赞