App 性能和体验提示思考

对于这篇文章的思考和整理:通过后台数据预获取技术实现性能提升

只是一些思考没有完整处理方案

希望处理的问题

网络问题处理

  1. 无网络/网络连接失败的时候

需要显示缓存的数据(用户之前游览过的数据)

需要在手机空闲并且连接 wifi 的情况下缓存一部分新的数据,在用户查看数据的时候加快速度,相当于数据预加载功能,

  1. 网络慢的时候

应用任务种类及其处理时机问题

  1. 一些重要而且具有一定重量级的任务的执行时机

当用户打开应用的时候再去执行花费会造成一定的用户等待时间,即使是在后台运行也可能会使应用变得卡。

  1. 一些不重要但是需要被执行的任务。

这类任务也不建议在用户使用 app 的时候执行,可以在手机空闲的时候执行,或者在 UI 退到后台的时候执行。

  1. 一些马上可能使用到的功能

在用户使用 App 的时候提前预测用户下一步动作,提前做一些预处理工作。这里的预处理工作可以是从网络中加载数据,也可以是从本地数据库中读取数据。

需要处理的具体问题和处理方案

网络问题

需要做到下面几项

  1. 缓存历史请求的数据。在无网的时候可以直接使用
  2. 后台预加载数据。实现在无网/弱网状态下也能很快加载数据,在 网络正常 情况下也可以先显示预加载的数据,然后请求新数据
  3. 缓存的管理。设置 缓存可占用物理内存 最大值功能

方案:

  • 数据库存储之前加载过的数据
  • 利用 retrofit 和 http 的特性实现加载离线数据

用户体验思考:增加上次阅读到哪里的标记(类似 今日头条 实现的上次阅读到这里的标记)

应用任务处理时机问题

任务处理:

  • Android 5.0 之后使用 JobSchedule 实现后台处理任务
  • 使用监听 App的Backgorund和Foreground 实现应用切换到后他的时候开启一些任务,当 app 回到前台的时候停止任务的处理减少性能消耗,保证应用流程运行
  • 监测手机的状态,如果手机内存充足,cpu 空闲,那么可以运行重量级任务
  • 利用人工智能学习用户的习惯

利用人工智能确定用户什么时候会打开应用,什么时候用户会连接 wifi,什么时候手机处于弱网状态,什么时候手机处于空闲 wifi 状态。

利用人工智能确定 后台任务 的执行时机。

你可能感兴趣的:(App 性能和体验提示思考)