20160113-android图片缓存

知识摘抄本:

android设备的图片缓存:

1.内存缓存:图片缓存在设备的内存中,优点是快,缺点是消耗内存,所以不能太大,用要考虑分配的空间,应用重启后就会消失。

方法一:软引用SoftReference。

方法二:官网推荐LruCache:相当于线程安全的LinkedHashMap。必须要之道的区别:

LruCache封装了LinkedHashMap,提供了LRU(Least Recently Used 最近最少使用算法)缓存的功能;

LruCache通过trimToSize方法自动删除最近最少访问的键值对;

LruCache不允许空键值, LinkedHashMap允许;

LruCache线程安全, LinkedHashMap线程不安全;

继承LruCache时,必须要复写sizeOf方法,用于计算每个条目的大小。在put和get的时候会调用safeSizeOf(K key, V value),safeSizeOf(K key, V value)会调用 sizeOf (K key, V value),这个方法默认返回1。

2.外部缓存,图片缓存在磁盘上,磁盘可以是内部的存储空间也可以是外部的sd卡。外部缓存的优点是可以长久保存大量的数据(相比较内存缓存而言),缺点就是慢。


参考文档:

1.Android内存优化之内存缓存

2.android中图片的三级cache策略(内存、文件、网络)之二:内存缓存策略

3.详细解读LruCache类

4.Android高效加载图片,有效避免程序OOM:zhang的blog,学习榜样~~~

你可能感兴趣的:(20160113-android图片缓存)