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
对于初学者来说听着好高大上,但是在实际项目中的应用呢有没有这么复杂呢?下面我总结了一下好多网友的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
相关文章推荐
- 【转】 Pro Android学习笔记(六六):安全和权限(3):Provider权限
- android listview 实现从数据库读取已读功能,服务器通知增加,刷新listview
- 【转】 Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
- 【转】 Pro Android学习笔记(六四):安全和权限(1):签发apk
- 【转】 Pro Android学习笔记(六三):Preferences(7):代码控制首选项
- Android中六款值得推荐的开源框架简介
- 【转】 Pro Android学习笔记(六二):Preferences(6):header
- 【转】 Pro Android学习笔记(六一):Preferences(5):组织Preference
- 【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference
- 【转】 Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference
- Android常见知识点
- 【转】 Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
- 【转】 Pro Android学习笔记(五七):Preferences(1):ListPreference
- 【转】 Pro Android学习笔记(五六):配置变化
- 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode
- 【转】 Pro Android学习笔记(五四):调试和分析(2):View层次结构
- 【转】Pro Android学习笔记(五三):调试和分析(1):Debug视图和DDMS视图
- 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式
- 【转】 Pro Android学习笔记(五一):ActionBar(4):标准和Tab模式
- 【转】 Pro Android学习笔记(五十):ActionBar(3):搜索条