文档章节

OTA多版本升级方案

老牟
 老牟
发布于 2014/01/03 16:02
字数 570
阅读 255
收藏 6

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


© 著作权归作者所有

共有 人打赏支持
下一篇: Timer lock
老牟
粉丝 14
博文 20
码字总数 8401
作品 0
成都
程序员
私信 提问
云端一体化差分+安全升级,AliOS Things物联网升级“利器”

1.1 OTA升级简介 随着物联网的日益发展,OTA升级逐渐成为物联网设备的刚性需求,目前物联网设备种类繁多,但并未提供统一的OTA升级方案,针对日益发展的物联网设备,开发者迫切需要一套云端一...

wuxinyu
09/28
0
0
艾拉比视角:OEM厂商对OTA的急迫与“无奈”

过去6年,OTA 成了特斯拉吸引用户的法宝,毕竟在联网情况下就能提升车辆性能,谁愿意开车到 4S 店让工人将自己的爱车拆得七零八落?”,Autotrader和《凯利蓝皮书》的执行出版人Karl Brauer...

于胜越
09/29
0
0
「镁客·请讲」艾拉比芮亚楠:当OTA普及,我们将在物联网和车联网看到三个变化

在芮亚楠看来,自身不具备升级迭代功能的不算真正意义上的智能设备。 在智能手机,我们总是通过OTA(Over-The-Air)技术来实现系统的更新与漏洞的修补,用WiFi、移动通信等无线网络自动下载O...

行者武松
03/07
0
0
摩托罗拉手机可能很快升级到 Android 5.0

我们知道摩托罗拉正在努力工作,让旗下智能手机得以很快 地升级到Android 5.0棒棒糖。现在看起来,升级时间要比预料得要早。几天前摩托罗拉内部泄露了Android 5.0棒棒糖的一个测试版本,仅供...

oschina
2014/11/09
3K
8
Android 4.4.2 KitKat 发布,以及如何安装

Android 4.4.1 发布仅仅几天后,Google 已经为 Nexus 设备准备好了 4.4.2 版本。该版本包含 Nexus 5 摄像头的显著改进,其他主要是重要 bug 的修复。 Android 4.4.2 修复了 VM Indicator 的清...

oschina
2013/12/10
8K
13

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMQ+PHP 教程三(Publish/Subscribe)用yii2测试通过

介绍 在前面的教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务都交付给一个工作人员处理。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者发送消息。此模式...

hansonwong
22分钟前
2
0
关于JAVA你必须知道的那些事(四):单例模式和多态

好吧,今天一定要把面向对象的最后一个特性:多态,给说完。不过我们先来聊一聊设计模式,因为它很重要。 设计模式 官方的解释是,设计模式是:一套被反复使用,多数人知晓的,经过分类编目,...

拾光TM
22分钟前
1
0
ES6 系列之 Babel 是如何编译 Class 的(下)

摘要: ## 前言 在上一篇 [《 ES6 系列 Babel 是如何编译 Class 的(上)》](https://github.com/mqyqingfeng/Blog/issues/105),我们知道了 Babel 是如何编译 Class 的,这篇我们学习 Babel ...

阿里云官方博客
23分钟前
1
0
附实例!实现iframe父窗体与子窗体的通信

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息。同时本...

腾讯云加社区
29分钟前
1
0
JSP页面传List集合到Action中

1:JSP页面(前端用的是H-UI框架) <div class="codeView docs-example"> <table class="table table-border table-bordered table-striped"> <thead> ......

uug
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部