Android性能优化-缓存的使用

前言

最近又对数据缓存有了新的认识,所以来记录下我对缓存的理解,以及我在项目中是如何使用的。

为什么需要数据缓存

以下为我个人看法。

  • 考虑极端环境下的用户体验
    • 断网情况
    • 网速慢的情况
  • 节省客户端流量
  • 减少服务器压力

什么样的数据需要缓存

  • 首先最需要缓存的就是图片了(这个不多说)
  • 其次就是一些非常重要的数据(如app首页数据)

常见的数据缓存方法以及优缺点

  • 文件缓存

    • 优点 可以缓存超大数据(实际用途很小)
    • 缺点 读写开销大
  • 数据库缓存

    • 优点 数据结构清晰,容易管理
    • 缺点 同样读写开销大
  • sharedpreferences

    • 优点 操作简单,速度也比较块
    • 缺点 只支持基本的数据类型

在上面的三种方法中,我个人最喜欢sharedpreference,在sharedpreference满足不了需求的情况下,会选择数据库缓存。snappy 用法简单,速度快,值得一试

我所知道的缓存策略

  • 预先加载缓存,需手动刷新才请求数据(新浪微博)
  • 预先加载缓存,同时请求新数据并更新缓存数据,但不是立马刷新界面(csdn客户端)
  • 预先加载缓存,同时请求新数据并里面更新界面,且更新缓存数据

上面的三种策略各有自己的优缺点,需要更具实际需求去选择合适的策略。

整个过程

  1. 请求数据

  2. 读取缓存

  3. 回调updateview

  4. 继续请求新的数据

  5. 服务器返回结果

    • 成功 更新缓存数据,根据选择的方法选择是否立即更新
    • 失败

总结

数据缓存很重要,数据缓存很重要,数据缓存很重要。目前,也算是对数据缓存有了一些理解,也算是有了一些实践了,拿出来分享给大家。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而...
    零一间阅读 900评论 0 12
  • 在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而...
    dreamer_lk阅读 1,045评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,876评论 25 709
  • 0. 前言 前面有被用户投诉 APP 流量消耗厉害: 于是乎考虑了流量方面的问题。暂时 APP 中涉及流量的几个方...
    zyl06阅读 24,361评论 5 63
  • 《一条狗的使命》这是个电影名字。本来是当喜剧片看的,可是看完之后内心软软的,有一种要哭的感觉。 导演用狗狗的五世之...
    裕雅说动漫阅读 680评论 2 2