android数据缓存

来源:互联网 发布:php 多图上传 编辑:程序博客网 时间:2024/05/21 17:32

好多同学做项目时会遇到网络加载数据、图片等情况,还有面试时好多面试者都被提问用过缓存吗?你们是怎么实现缓存的,用的是硬件缓存还是内存缓存等等 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

2 0
原创粉丝点击