上一篇文章说说Android LRU缓存算法实现学习笔记(一) 中我们介绍了最常用的实现LRU缓存的数据结构LinkedHashMap,这一节我们会针对LinkedHashMap的数据结构的特性,来自己实现缓存结构和学习Android源码和项目中对缓存的完善。
上一篇说到对于缓存实现,我们很重要的会考虑以下几点:1.访问速度;2.逐出旧的缓存策略;3.最好还能考虑到一定的并发度。...
分类:
移动开发 时间:
2015-02-27 10:11:34
阅读次数:
313
使用LruCache作为图片的内存缓存,其内部使用LinkedHashMap作为实现基础,并且全部使用强引用。弱引用、软应用在android API9之后会被更容易回收,使得有潜在浪费资源的情况。?参考: http://blog.csdn.net/yudajun/article/details/41...
分类:
系统相关 时间:
2015-02-14 10:56:37
阅读次数:
159
使用内存缓存
使用内存缓存可以快速的拿到bitmap,但是是以占用应用可用内存为代价的。LruCache类就是为了实现bitmap的缓存的,它把最近被引用的对象存储在了一个强引用类型的LinkedHashMap中,在缓存大小超过它设定的值的时候就会赶出尽量少的最近使用的对象。
注意:在以前,一个比较受欢迎的内存缓存实现是SoftReference或者WeakReference bitmap缓存...
分类:
其他好文 时间:
2015-02-06 18:53:20
阅读次数:
270
又是好久没写博客。。
今天我们来一起学习一下缓存技术,相信大家做开发的时候都知道请求网络数据的重要,但是有一些只用请求一次就过时性的消息比如某些新闻信息,如果我们每次进入新闻界面就从新从网络上获取势必会给用户带来不好的体验,所以我们需要缓存技术来帮我们解决这一问题。
1,LruCache介绍
核心的类是LruCache (此类在android-support-v4的包中提供) 。这个类非常适...
分类:
移动开发 时间:
2015-02-06 11:21:19
阅读次数:
198
很简单的实现,使用List保存数据,Map实现快速访问.
具体实现了下面几个函数:
func NewLRUCache(cap int)(*LRUCache)
func (lru *LRUCache)Set(k,v interface{})(error)
func (lru *LRUCache)Get(k interface{})(v interface{},ret bool,err er...
分类:
编程语言 时间:
2015-02-03 19:27:20
阅读次数:
188
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,...
分类:
系统相关 时间:
2015-02-02 17:21:12
阅读次数:
294
题目Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:getandset.get(key)- Get the va...
分类:
系统相关 时间:
2015-01-30 17:19:54
阅读次数:
162
之前学习volley框架,用ImageLoader可以设置内存缓存,用一个LruCache,就可以避免OOM且图片读取速度快,爽极了。
后来想,如果只是内存缓存的话,那退出程序或者内存不够大了,缓存的图片不就被清理掉了,这样每次启动程序就又得去网上下载图片,流量好贵的。
于是找到了磁盘缓存框架DiskLruCache,这是一个挺著名的开源框架,网易云阅读等APP之前都用它来缓存图片,关...
分类:
其他好文 时间:
2015-01-26 22:49:11
阅读次数:
263
为什么要缓存图片:(1)根据具体设备的不同Android系统为每个应用分配了固定内存空间供应用使用;(2)图片是一种很占内存的资源文件,如果界面中加载一张图片还好说,如果要加载大量的图片就会超过系统为应用分配的空间发生OOM异常,使程序奔溃;2.LruCache:主要算法原理:将..
分类:
移动开发 时间:
2015-01-22 15:47:29
阅读次数:
196
在看次文章前建议先阅读一下郭霖打什么的blog http://blog.csdn.net/guolin_blog/article/details/17482095一共四篇,仔细看。
下面是我对它里面使用的imageloader 中的cache 进行的一下扩充:
新建一个bitmapcaache 类继承自android supportV4提供的LruCache (主要包括硬引用,软引用,以及...
分类:
其他好文 时间:
2015-01-21 13:35:24
阅读次数:
390