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,学习榜样~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,404评论 25 708
  • 本文会从工作原理到具体实现来详细介绍如何开发一个简洁而实用的Android图片加载框架,并从内存占用与加载图片所需...
    absfree阅读 2,407评论 4 34
  • 1、什么是缓存? 缓存技术原理就是把用户访问的所有对象看作一个全集,经过算法标记哪些是用户经常访问的对象,把这些对...
    磨砺营阅读 605评论 0 1
  • 什么是缓存? 缓存技术原理就是把用户访问的所有对象看作一个全集,经过算法标记哪些是用户经常访问的对象,把这些对象放...
    读行游阅读 683评论 1 10
  • 风的气味变了。 他走到山头的时候,夕阳正好从两座没有树木覆盖的山峰之间斜着照过来。 将要落山的太阳,出奇的大,颜色...
    三凡先生阅读 222评论 0 1