Android性能优化-缓存的使用

前言

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

为什么需要数据缓存

以下为我个人看法。

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

什么样的数据需要缓存

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

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

  • 文件缓存

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

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

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

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

我所知道的缓存策略

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

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

整个过程

  1. 请求数据

  2. 读取缓存

  3. 回调updateview

  4. 继续请求新的数据

  5. 服务器返回结果

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

总结

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

你可能感兴趣的:(Android性能优化-缓存的使用)