Android中内存缓存和文件缓存的实现原理
2015-04-14 18:04
561 查看
发布时间:2014-12-25 15:20 分类:android开发基础
MemoryCache内存缓存类讲解
使用SoftReference做的内存缓存类
文件缓存类FileCache讲解
内存缓存即把数据保存在内存中,如果缓存的数据超过设定的内存限制就删除最先缓存进来的数据。下面的MemoryCache缓存类是先创建一个Map对象(这里缓存的是Bitmap数据,所以Map的值为Bitmap),把缓存数据存入这个map对象中,想缓存数据时调用put(String id,Bitmap bitmap)方法,想从内存缓存中取数据时调用 get(String id)。
get(String id)方法的原理是先通过判断cache对象中是否包含要得到的键,如果包含就返回该键对应的值,如果不包含返回null。
put(String id,Bitmap bitmap)方法判断是否包含该键,如果包含,缓存中图片所占用的字节的值需要将该键对应的bitmap对象所占用的内存减掉,再将该bitmap加入到cache对象中,检查现在的缓存的内存值即调用checkSize方法。checkSize方法中计算内存是否超过设定的值,如果超过了,就从cache对象中移除最先缓存的对象
内存缓存类MemoryCache代码
也可以使用SoftReference,代码会简单很多,不过我们推荐使用上面的一种方法
文件缓存类的作用也就是把文件保存到SD卡上,下面是文件缓存类的代码FileCache.java:
MemoryCache内存缓存类讲解
使用SoftReference做的内存缓存类
文件缓存类FileCache讲解
MemoryCache内存缓存类讲解
内存缓存即把数据保存在内存中,如果缓存的数据超过设定的内存限制就删除最先缓存进来的数据。下面的MemoryCache缓存类是先创建一个Map对象(这里缓存的是Bitmap数据,所以Map的值为Bitmap),把缓存数据存入这个map对象中,想缓存数据时调用put(String id,Bitmap bitmap)方法,想从内存缓存中取数据时调用 get(String id)。get(String id)方法的原理是先通过判断cache对象中是否包含要得到的键,如果包含就返回该键对应的值,如果不包含返回null。
put(String id,Bitmap bitmap)方法判断是否包含该键,如果包含,缓存中图片所占用的字节的值需要将该键对应的bitmap对象所占用的内存减掉,再将该bitmap加入到cache对象中,检查现在的缓存的内存值即调用checkSize方法。checkSize方法中计算内存是否超过设定的值,如果超过了,就从cache对象中移除最先缓存的对象
内存缓存类MemoryCache代码
使用SoftReference做的内存缓存类
也可以使用SoftReference,代码会简单很多,不过我们推荐使用上面的一种方法
文件缓存类FileCache讲解
文件缓存类的作用也就是把文件保存到SD卡上,下面是文件缓存类的代码FileCache.java:相关文章推荐
- Android中内存缓存和文件缓存的实现原理
- Android结合volley的netWorkImageview实现图片文件缓存
- Glide :一个android平台上的快速和高效的开源的多媒体资源管理库, 提供 多媒体文件的压缩,内存和磁盘缓存, 资源池的接口
- 内存缓存LruCache实现原理
- Android apk文件资源混淆原理及实现
- 内存缓存LruCache实现原理
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
- Android 利用缓存机制实现文件下载
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- android 网络加载图片,对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存
- android中图片的三级cache策略(内存、文件、网络)之二:内存缓存策略
- android中图片的三级cache策略(内存、文件、网络)之三:文件缓存策略
- Android 内存+文件+网络三级缓存
- android 获取网络图片缓存(内存—>文件—>网络)
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 三级缓存Cache(内存,文件,网络)图片缓存设计
- android 网络加载图片,对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存
- android 网络加载图片,对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存