class LRUCache提供两个接口:get(int key)和set(int key,value)
#include
using namespace std;
class LRUCache{
public:
LRUCache(int cap):current(0),capacity(cap){
A=new node[ca...
分类:
编程语言 时间:
2014-08-21 00:17:53
阅读次数:
383
上一篇分析了LinkedHashMap源码,这个Map集合除了拥有HashMap的大部分特性之外,还拥有链表的特点,即可以保持遍历顺序与插入顺序一致。另外,当我们将accessOrder设置为true时,可以使遍历顺序和访问顺序一致,其内部双向链表将会按照近期最少访问到近期最多访问的顺序排列Entry对象,这可以用来做缓存。
这篇文章分析的LruCache并不是jdk中的类,而是来自安卓...
分类:
其他好文 时间:
2014-08-20 10:33:46
阅读次数:
171
LruCache是一个很好用的图片缓存工具:
主要做法是:滑动图片时将图片的bitmap缓存在LruCache中,退出程序后将图片缓存进文件里,采用DiskLruCache mDiskLruCache
所以我们必须设置一个图片缓存的地址:
public void setImageCache(){
String strPath = null;
if (Environ...
分类:
其他好文 时间:
2014-08-18 16:29:22
阅读次数:
271
MainActivity如下:
package cc.patience4;
import cc.patience4.R;
import android.os.Bundle;
import android.app.Activity;
/**
* Demo描述:
* 采用瀑布流的形式加载大量网络图片
* 详细分析参见WaterfallScrollView
*
* 更新说明:
* 该示...
分类:
其他好文 时间:
2014-08-15 10:43:18
阅读次数:
295
#include #include #include #include using namespace std;templatestruct LRUCacheEntry{ K key; T data; LRUCacheEntry* prev; LRUCacheEntry* n...
分类:
编程语言 时间:
2014-08-14 20:06:19
阅读次数:
206
在上一篇文章当中,我们学习了DiskLruCache的概念和基本用法,但仅仅是掌握理论知识显然是不够的,那么本篇文章我们就来继续进阶一下, 看一看在实战当中应该怎样合理使用DiskLruCache。还不熟悉DiskLruCache用法的朋友可以先去参考我的上一篇文章 Android DiskLruC...
分类:
移动开发 时间:
2014-08-14 13:21:18
阅读次数:
294
在上一篇文章当中,我们学习了DiskLruCache的概念和基本用法,但仅仅是掌握理论知识显然是不够的,那么本篇文章我们就来继续进阶一下,看一看在实战当中应该怎样合理使用DiskLruCache。还不熟悉DiskLruCache用法的朋友可以先去参考我的上一篇文章 Android DiskLruCache完全解析,硬盘缓存的最佳方案 。
其实,在真正的项目实战当中如果仅仅是使用硬盘缓存的话,程序是有明显短板的。而如果只使用内存缓存的话,程序当然也会有很大的缺陷。因此,一个优秀的程序必然会将内存缓存和硬盘缓存...
分类:
移动开发 时间:
2014-08-14 10:56:28
阅读次数:
309
MainActivity如下:
package cc.patience3;
import android.os.Bundle;
import android.app.Activity;
/**
* Demo描述:
* 采用瀑布流的形式加载大量网络图片
* 详细分析参见WaterfallScrollView
*
* 参考资料:
* 1 http://blog.csdn.net/gu...
分类:
其他好文 时间:
2014-08-13 14:59:06
阅读次数:
402
防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时。对此,Google又提供了一套硬盘缓存的解决方案:DiskLruCache(非Google官方编写,但获得官方...
分类:
其他好文 时间:
2014-08-09 00:00:06
阅读次数:
369
记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时。对此,Google又提供了一套硬盘缓存的解决方案,DiskLruCache(非Google官方编写,但获得官方认证)。只可惜,Android Doc中并没有对DiskLruCache...
分类:
移动开发 时间:
2014-08-07 09:47:49
阅读次数:
260