本文转载自:http://blog.csdn.net/yanleizhouqing/article/details/50234213

1、前言

OTA(Over-the-Air Technology)空中下载技术。是通过移动通信(GSMCDMA)的空中接口对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在线升级一(架构分析)【转】的更多相关文章

  1. Android OTA在线升级二(升级包编译原理分析) 【转】

    本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø  makeMtk [project[flav ...

  2. Android apk在线升级

    APK 在线升级 APK 在线升级几乎是所有程序必备的功能. 在线升级功能能解决已有的问题并提供更丰富的新功能. 基本的流程是: 检测到新版本信息 弹出升级提示窗口 点击 No 不进行升级,完毕! 点 ...

  3. ESP8266的RTOS版本ota在线升级基本流程及备忘

    ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...

  4. 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件

    代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...

  5. android 在线升级借助开源中国App源码

    android 在线升级借助开源中国App源码 http://www.cnblogs.com/luomingui/p/3949429.html android 在线升级借助开源中国App源码分析如下: ...

  6. Android OTA 升级之三:生成recovery.img

    Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手 ...

  7. Android架构分析之Android消息处理机制(二)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...

  8. Qualcomm Android display架构分析

    Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...

  9. Android架构分析之使用自定义硬件抽象层(HAL)模块

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本:2.3.7_r1 Linux内核版本:android-goldfish-2.6.29 在上一篇博 ...

随机推荐

  1. PS 流格式解析(转)

    对于PS流,最近因为工作需要,所以MPEG2中的PS流格式和解包过程进行了学习. 首先我们需要知道PS包流格式是怎么样的: 针对H264 做如下PS 封装:每个IDR NALU 前一般都会包含SPS. ...

  2. ESXi安装iso镜像添加驱动(esxi6.5,6.7)

    准备工作:1.安装 Windows PowerShell 3.0 (需要启用Windows AutoUpdate服务,安装完毕计算机需要重启) https://www.microsoft.com/en ...

  3. asp.net core mvc视频A:笔记2-4.ActionResult(动作结果,即返回值)

    json类型测试 方法一:实例化对象方式 代码 运行结果 方法二:封装方式 代码改动 运行结果 重点视图返回介绍,其他的不做介绍了 项目文件目录及文件添加 代码 运行结果 如果要显示的不是默认视图,可 ...

  4. 征信报告页面的input验证收集

    https://ipcrs.pbccrc.org.cn/ function checkLoginName() { var loginName = $.trim($("#loginname&q ...

  5. iOS 控制器title和tabbar的title设置问题

    iOS 设置tabbarItem的title的是通过 controller.tabBarItem.title = @"标题" iOS 设置导航栏控制器title通过 contoll ...

  6. android开发中遇到的问题汇总【九】

    244.http请求的url含有中字符时.须要Uri编码.Uri.encoder() 245.使用androidstudio时,不知道什么原因svn不见了 Android Studio missing ...

  7. 解决ajax跨域问题的多种方法

    //第一种方法使用jsonp的方式 <script type="text/javascript" src="http://www.youxiaju.com/js/j ...

  8. JVM调优- jstat(转)

    jstat的用法 用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序. Jstat ...

  9. 【很强大的Android图表引擎 - AChartSDK】

    在手机移动App开发中,图表在app中越来越占领举足轻重的地图.而在Android领域.AchartEngine 图表引擎可谓无人不知无人不晓. 可是今天就给各位推荐更为强大的图表引擎. 为什么说更为 ...

  10. 圆环自带动画进度条ColorfulRingProgressView

    这是项目中遇到了,我也是借鉴大神的, 下载地址:https://github.com/oooohuhu/ColorfulRingProgressView 我把它导入了github中了,里面有详细的使用 ...