您的位置:首页 > 移动开发 > Android开发

android数据缓存

2015-12-15 13:42 495 查看
好多同学做项目时会遇到网络加载数据、图片等情况,还有面试时好多面试者都被提问用过缓存吗?你们是怎么实现缓存的,用的是硬件缓存还是内存缓存等等 balabala....

对于初学者来说听着好高大上,但是在实际项目中的应用呢有没有这么复杂呢?下面我总结了一下好多网友的blog,摘出了我认为对我比较有用的东西和大家分享一下。文章最下面有参考blog地址,尊重原创 :-)

正文开始开始啦

第一点先说内存缓存和硬件缓存的问题

简单的理解就是内存缓存是把数据存到内存当中,需要的时候可以先从内存中获取数据。

硬件缓存指的是把获取到的数据写入到本件中(如:本地数据库SQLite、SharedPreferences、File文件等)

因为内存缓存会把数据缓存到内存中,所以会收到内存的限制,并且不可长时间保留并且不可缓存过大文件如图片、视频等。

(内存的缓存方式分为4种级别由高到低依次为:强引用、软引用、弱引用和虚引用区别详见

具体用法参考http://blog.csdn.net/kavendb/article/details/5935577



硬件缓存应该存储到那比较好呢

我这也不啰嗦了,可以参考一下这位同学的blog
http://blog.csdn.net/dalancon/article/details/17416041
再说一些实用的

如果想了解内存缓存软引用的可以参考这位同学的blog
http://blog.csdn.net/gf771115/article/details/30269159
我今天主要还是想介绍一下ASimpleCache这个轻量级缓存框架

系在地址https://github.com/yangfuhai/ASimpleCache

该作者也是国人同时也是afinal作者

下面我再给同学简单介绍一下他的用法(超级简单好用的)

它可以缓存普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和
byte数据。

第一步:创建对象

ACache mCache = ACache.get(this);

第二步

调用public
void put(String key, String value, int saveTime)方法

三个参数含义分别是

*
@param key

*
保存的key

*
@param value

*
保存的String数据

*
@param saveTime

*
保存的时间,单位:秒

例子:

mCache.put("test",
"hello world",10);

含义是我要把字符串hello world 缓存起来 对应的key值是test 缓存时间10s

第三步

调用方法public
String getAsString(String key)

参数含义

* @param key 缓存key值

* @return String 数据

例子

String testString = mCache.getAsString("test");

参数是test的key

获取对应的缓存数据是testString
// ------------"hello world"

哈哈 是不是很简单呢,具体还可以缓存图片,对象等也只需要三步就可以完成。

有需要的小伙伴下载来来研究下吧。:-)

更具不同需求可选择不同的缓存方式

今天第一篇学习心得就更新到这了。希望在这里认识更多的朋友,还有有什么建议,意见的欢迎再评论里批评指正。:-)

参考blog:
http://blog.csdn.net/lnb333666/article/details/8460159 http://blog.csdn.net/kavendb/article/details/5935577
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐