Android性能优化-缓存的使用
2016-03-31 23:16
330 查看
1.前言
前面也几篇博客提到了缓存,但是比较零散,最近又对数据缓存有了新的认识,所以来记录下我对缓存的理解,以及我在项目中是如何使用的。2.为什么需要数据缓存
以下为我个人看法。考虑极端环境下的用户体验
断网情况
网速慢的情况
节省客户端流量
减少服务器压力
3.什么样的数据需要缓存
首先最需要缓存的就是图片了(这个不多说)其次就是一些非常重要的数据(如app首页数据)
4.常见的数据缓存方法以及优缺点
文件缓存优点 可以缓存超大数据(实际用途很小)
缺点 读写开销大
数据库缓存
优点 数据结构清晰,容易管理
缺点 同样读写开销大
sharedpreferences
优点 操作简单,速度也比较块
缺点 只支持基本的数据类型
在上面的三种方法中,我个人最喜欢sharedpreference,在sharedpreference满足不了需求的情况下,会选择数据库缓存。snappy 用法简单,速度快,值得一试
5.我所知道的缓存策略
预先加载缓存,需手动刷新才情况数据(新浪微博)预先加载缓存,同时请求新数据并更新缓存数据,但不是立马刷新界面(csdn客户端)
预先加载缓存,同时请求新数据并里面更新界面,切更新缓存数据
上面的三种策略各有自己的优缺点,需要更具实际需求去选择合适的策略。
6.整个过程
请求数据读取缓存
回调updateview
继续请求新的数据
服务器返回结果
成功 更新缓存数据,更具选择的方法选择是否立即更新
失败
7.总结
数据缓存很重要,数据缓存很重要,数据缓存很重要。目前,也算是对数据缓存有了一些理解,也算是有了一些实践了,拿出来分享给大家。相关文章推荐
- android音视频采集参考
- Recylerview 加载更多功能实现(分页加载)
- 简介好看的anroid自定义日历控件,源码
- ListView优化之图片的三级缓存(LruCache)
- Android 中Fragment与Activity通信大汇总
- Android调试,The selected device is incompatible
- android开发之Service的使用
- Android的基本世界观——系统简介,组件逻辑及其他
- Android 多线程文件断点下载器实现(造轮子系列)(一)
- android中的线程池学习笔记
- 绘图机制ColorMatrix
- Android的基本世界观——系统简介,组件逻辑及其他
- Android Studio Jni环境配置 - 记录
- Android基础-ViewFlipper
- Gradle DSL method not found: 'android()
- Android Studio提交代码到SVN
- Android坐标系
- [android] 代码注册广播接收者&利用广播调用服务的方法
- Intent 全面理解
- Android学习之设计模式之单例模式