避免OOM系列之(二)-------LruCache使用以及源码详细解析
来源:互联网 发布:天谕sabar捏脸数据图女 编辑:程序博客网 时间:2024/06/05 07:49
开始准备先讲引用的,但是考虑到网上有很多优秀的框架,关于缓存这块基本上全是用的LruCache,所有先讲解下Lrucache的使用和源码分析。
LRU是Least Recently Used 近期最少使用算法。其实LruCache的作用就是对缓存的元素进行排序,当超过设定的内存值时就会将使用最少,使用最早元素先回收。
LruCache的声明:
上面的声明代码是LruCache中注释文本中的,源码中已经明确的告诉我们使用的方法。
上面的声明只是告诉我们最大可以缓存的值和缓存的元素大小的计算方法。我们也可以不这么用,我们设置最大缓存的元素个数(以下代码不可使用,因为你不知道元素的大小,非常内存泄漏,我写的原因,只是告诉大家这边的值是可以灵活变动的,LruCache的作用只是按照我们给的方式计算):
上面代码只是参考,谢谢。
LruCache的使用:
LruCache的声明和使用和简单,要注意的就是关于缓存大小的设置,网上很多都是设置应用程序大小的1/8.这个看你个人情况。下面就开始分析源码:因为源码太多,所有只是截取了重要的部分:
上面是源码中主要的字段和方法,代码不难所有不做太多叙述,重点要讲的就是 map 这个字段。因为lruCache完全是对LinkedHashMap的封装。
因为LinkedHashMap,HashMap,AbstractMap,Map代码过多,所有我把<<LinkedHashMap源码分析>>,放到一篇新的微博中:
0 0
- 避免OOM系列之(二)-------LruCache使用以及源码详细解析
- 【LruCache完全解析】Android高效加载大图、多图解决方案,有效避免程序OOM (AdapterView使用LruCache图片缓存)
- 【LruCache完全解析】Android高效加载大图、多图解决方案,有效避免程序OOM (AdapterView使用LruCache图片缓存)
- android之LruCache源码解析
- Android源码解析之(七)-->LruCache缓存类
- Android-PickerView系列之源码解析篇(二)
- Android-PickerView系列之源码解析篇(二)
- Picasso源码解析之Lrucache算法源码解析
- Java OOM系列(二)
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
- Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
- Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
- Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例
- Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
- 神级Coder绝不犯的错误:为炫耀编出超短码
- 2016中国大学生程序设计竞赛 - 网络选拔赛【三水题 1001 && 1004 && 1011】
- TabLayout+ViewPage+Fragment简单使用的方法
- hdu-1596-find the safest road
- jquery样式
- 避免OOM系列之(二)-------LruCache使用以及源码详细解析
- XListView
- xlistview下拉刷新,上拉加载
- myeclipse 方法上加上@Override就报错
- Sublime Text 3最好的功能、插件和设置
- AS的assets文件夹理解
- XListViewHeader
- LightOJ 1058 - Parallelogram Counting
- jquery事件