开源框架——轻量级缓存框架——ACache(ASimpleCache)

本文介绍了Android中的缓存机制,包括内存缓存和文件缓存。重点讲解了从早期的软引用和弱引用到后来推出的LruCache的发展过程。此外还介绍了ACache类的功能和应用场景,包括如何替换SharedPreferences作为配置文件以及缓存网络请求数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://www.weixinla.com/document/16845590.html

http://blog.youkuaiyun.com/zhoubin1992/article/details/46379055


Android缓存机制

Android缓存分为内存缓存和文件缓存(磁盘缓存)。在早期,各大图片缓存框架流行之前,常用的内存缓存方式是软引用(SoftReference)和弱引用(WeakReference),如大部分的使用方式:HashMap<String url, SoftReference<Drawable>> imageCache;这种形式。从Android 2.3(Level 9)开始,垃圾回收器更倾向于回收SoftReference或WeakReference对象,这使得SoftReference和WeakReference变得不是那么实用有效。同时,到了Android 3.0(Level 11)之后,图片数据Bitmap被放置到了内存的堆区域,而堆区域的内存是由GC管理的,开发者也就不需要进行图片资源的释放工作,但这也使得图片数据的释放无法预知,增加了造成OOM的可能。因此,在Android3.1以后,Android推出了LruCache这个内存缓存类,LruCache中的对象是强引用的。


Cache介绍

ACache类似于SharedPreferences,但是比SharedPreferences功能更加强大,SharedPreferences只能保存一些基本数据类型、Serializable、Bundle等数据。而Acache可以缓存如下数据:普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据。


特点

1:轻,轻到只有一个JAVA文件。 
2:可配置,可以配置缓存路径,缓存大小,缓存数量等。 
3:可以设置缓存超时时间,缓存超时自动失效,并被删除。 
4:支持多进程。


应用场景

  • 替换SharePreference当做配置文件

  • 可以缓存网络请求数据,比如oschina的android客户端可以缓存http请求的新闻内容,缓存时间假设为1个小时,超时后自动失效,让客户端重新请求新的数据,减少客户端流量,同时减少服务器并发量


使用

1、保存数据

ACache mCache = ACache.get(this);
mCache.put("test_key1", "test value");
mCache.put("test_key2", "test value", 10);//保存10秒,如果超过10秒去获取这个key,将为null
mCache.put("test_key3", "test value", 2 * ACache.TIME_DAY);//保存两天,如果超过两天去获取这个key,将为null

2、获取数据
ACache mCache = ACache.get(this);
String value = mCache.getAsString("test_key1");

下载链接:https://github.com/yangfuhai/ASimpleCache

框架分析:http://blog.youkuaiyun.com/zhoubin1992/article/details/46379055



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值