Android OTA在线升级一(架构分析)【转】
本文转载自:http://blog.csdn.net/yanleizhouqing/article/details/50234213
1、前言
OTA(Over-the-Air Technology)空中下载技术。是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。这样,应用及内容服务商可以不受平台的局限,不断开发出更具个性化的贴近用户需求的服务,如信息点播、互动娱乐、位置服务以及银行交易等。通过OTA空中下载技术,手机用户只要进行简单操作,就可以按照个人喜好把网络所提供的各种业务菜单利用OTA机制下载到手机中,并且还可以根据自己的意愿定制具体业务。
移动终端空中下载软件(FOTA) 主要应用的手机领域。在FOTA出现之前,手机制造商和移动网络运营商无法在手机最重要的18至24个月的生命周期中有效地对软件进行升级。一旦用户需要对手机软件进行升级,他们经常迫不得已要带着手机到维修中心进行手机升级。FOTA使手机制造商能够通过无线网络将升级软件发送到用户的手机中从而对软件或是软件的某个部分进行升级。这样就省却了用户去销售网点或是服务中心而耽误得时间,方便了用户,也为手机制造商节约了成本。
“FOTA”(移动终端空中下载软件升级),这个由RED BEND公司开发并获得专利的技术vCurrent Mobile 移动终端空中下载软件升级(FOTA)解决方案,已经被越来越多的厂商应用到自己的产品之中。
通过空中下载的方式有效而可靠的对用户手中的手机进行升级。用这种方式,手机厂商能够更加快速地向市场推出具有新功能的手机并以此提高用户对其手机的满意度。Red Bend 软件公司的vCurrent Mobile技术可以生成极小的更新包对手机进行100%精确安全的更新从而节约了由此而产生的成本。与其它FOTA解决方案不同的是,vCurrent Mobile 生成的软件更新包不会妨碍原有的映像文件,从而使得更新过程简单而迅速。
FOTA的技术特点:
Ø Red Bend的FOTA客户端支持标准的OMA DM服务器,兼容性好
Ø 中国移动的DM系统也采用Red Bend的技术
Ø Red Bend的技术在DM领域处于领先
Ø 升级包采用差分包形式,减少下载浏览
Ø 客户端必须要Red Bend提供基础库
Red Bend软件公司是固件无线更新( FOTA )的领导者,根据独立市场研究公司Ovum的报告,截至2009年第四季度,Red Bend软件公司在FOTA手机市场占据了71 %的市场份额。该解决方案的精确性和安全性经过了数百万次验证,现已被行业顶级手机、调制解调器、M2M模块制造商广泛采用。LG电子,摩托罗拉,NEC,夏普,索尼爱立信等世界手机巨头利用RedBend公司的FOTA解决方案。
2 Android OTA
Android平台提供Google diff arithmetic差分机制,升级包支持整包(Full Image)和差分包(Differential Image)。OTA运行原理如下图:

图1 OTA运行原理图
上图所示的就是OTA运行的基本运行原理示意图。
Ø OTA Server主要是对差分包的一个上传、下载以及版本的管理。
Ø 开发者通过差分包的制作工具制作出差分包,使用客户端进行上传和对版本的管理。
Ø 手机通过WIFI/GPRS网络进行连接下载,然后完成更新。
3 服务器侧差分包制作原理
差分包的制作工具是google提供的制作工具,是由一些脚本和差分包制作工具组成,分散在code源码之中。考虑到工具可能被修改或者调整,因此每次制作都需要从code中重新提取,用于制作前后两个版本之间的差分包,工具文件如下图所示。




1、recovery:这个目录是Make用来检查recovery的版本号
2、releasetools这个目录下提供的是制作OTA package的脚本工具
3、security这个目录是用来生成OTA包的签名
4、bin image的差分工具
5、framework是用来给apk包进行签名
提取原始版本和升级的整包作为制作差分包的原始包,提取后分别命名为org.zip和ota.zip。编写一个perl脚本,脚本通过下面的命令生成差分包。
Ø /build/tools/releasetools/ota_from_target_files –n –i org ota update.zip –制作差分包
差分包生成后,手机通过客户端与服务器通信后下载差分包进行升级。
Android OTA在线升级一(架构分析)【转】的更多相关文章
- Android OTA在线升级二(升级包编译原理分析) 【转】
本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø makeMtk [project[flav ...
- Android apk在线升级
APK 在线升级 APK 在线升级几乎是所有程序必备的功能. 在线升级功能能解决已有的问题并提供更丰富的新功能. 基本的流程是: 检测到新版本信息 弹出升级提示窗口 点击 No 不进行升级,完毕! 点 ...
- ESP8266的RTOS版本ota在线升级基本流程及备忘
ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...
- 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件
代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...
- android 在线升级借助开源中国App源码
android 在线升级借助开源中国App源码 http://www.cnblogs.com/luomingui/p/3949429.html android 在线升级借助开源中国App源码分析如下: ...
- Android OTA 升级之三:生成recovery.img
Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手 ...
- Android架构分析之Android消息处理机制(二)
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...
- Qualcomm Android display架构分析
Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...
- Android架构分析之使用自定义硬件抽象层(HAL)模块
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本:2.3.7_r1 Linux内核版本:android-goldfish-2.6.29 在上一篇博 ...
随机推荐
- go结构体组合函数
结构体定义 上面我们说过Go的指针和C的不同,结构体也是一样的.Go是一门删繁就简的语言,一切令人困惑的特性都必须去掉. 简单来讲,Go提供的结构体就是把使用各种数据类型定义的不同变量组合起来的高级数 ...
- source sh运行脚本的差别
主要有两种方式运行shell脚本 1)source test.bsh 2)sh test.bsh 1)souce运行脚本文件会在父程序中运行.各项动作都会在原本的bash内生效.运行过程不另开进程.脚 ...
- RecyclerView 必知必会(转)
[腾讯Bugly干货分享]RecyclerView 必知必会 本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com ...
- phalcon builder 用法
$rawSql = $builder->columns(["aa","bb"]) ->from("TableName") -&g ...
- 【很强大的Android图表引擎 - AChartSDK】
在手机移动App开发中,图表在app中越来越占领举足轻重的地图.而在Android领域.AchartEngine 图表引擎可谓无人不知无人不晓. 可是今天就给各位推荐更为强大的图表引擎. 为什么说更为 ...
- Linux命令提示符的配置
Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc] ...
- PHP手机号码正则表达式
php用正则表达式判断手机号码的写法:从文章中匹配出所有的手机号就可以preg_match_all(),如果要检查用户输入的手机号是否正确可这样来检查:preg_match(). 用正则匹配手机号码的 ...
- ULN2003A 使用,有坑
8脚接24V负极 9脚接24V正极 16接24V继电器,再接到24V正极 1-7无论给5V 正 或 负,10-16都不能达到24V,越靠近输入端的输出端电压越大,最大的才11V,最小的2.5V 最后发 ...
- mysql时间相减的问题
MySQL中时间不能直接相减,如果日.分.时不同,相减结果是错误的 mysql> select t1,t2,t2-t1 from mytest; +--------------------- ...
- 浅谈命令查询职责分离(CQRS)模式---转载
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能 ...