OTA多版本升级方案

在做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胜出。


转载于:https://my.oschina.net/oldmou/blog/189873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值