您的位置:首页 > 其它

OTA多版本升级方案

2014-01-03 16:02 465 查看
在做OTA升级的时候,遇到一问题,当OTA多版本存在的时候,用户每更新一个detail包,就需要重启一次手机,如果有100个detail包,用户就需要重启100次么?

项目中的实际情况是,项目X出厂时刷的是版本100,项目每周都要定时推送用户升级,也就是有后续的101,102,103...,也就是说商店正在出售的手机还是100版本,而用户拿到手机的时候版本是出厂的时候的版本,连接网络后需要更新升级,也就是当检测到有101时,下载101版本,重启进入升级模式,更新101版本,重新启动后,检测到有102版本,又下载101版本,重启进入升级模式,再更新102版本。

那么有什么解决方案呢?

方案1

检测到如果是版本差有一定大时,直接下载最新版的full包,然后更新升级。

缺点:一般full包比较大,当网络情况不好时,用户下载更新包时间较长。

方案2

检测到所有的更新包,然后下载,合并成一个更新包,然后更新升级。

缺点:合并成一个更新包时,合并时间较长,如果出现合并错误,将导致不可预估的异常。

方案3

检测到所有的更新包,然后下载,通过修改升级模式代码,能够升级多个更新包。

缺点:暂无

优点:用户不需要在下载更新后,等待大量的时间用于合并更新包,方案3占用的时间为方案2占用时间的一半。

占用时间说明:

方案2: 下载更新包时间 + 合并时间 + 更新时间

方案3: 下载更新包时间 + 更新时间

方案2 和 方案3 由于更新包大小一样,所以理论上更新时间一样。

所以方案3胜出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: