android 增量升级

来源:互联网 发布:javascript 雪峰 编辑:程序博客网 时间:2024/05/22 10:51
 有次玩微信的时候,有提示新版本的更新,我点击更新后,发现微信的更新只有4M左右.在我的印象中,微信至少有14M左右.我也做过android应用程序更新,android普通更新程序流程如下:
1,从后台服务器获取最新版本信息
2,把最新版本和自己本地版本进行比较,如果最新版本比自己本地版本要新,则进行更新,否则不更新
3,如果更新的,先把后台服务器存放的apk文件下载到手机内存里面.
4,把下载到手机里面最新版本的apk进行安装,替代旧的版本

普通更新程序看起来比较容易实现,但有一个缺点就是:如果一个apk文件是20M左右,用户就要下载20M的apk,比较浪费流量.显然,微信旧版本14M左右,新版本只有4M左右,明显不是用上述的普通更新程序来更新的.当时我估计是用打补丁方式更新的.

通过后来的查阅,GoogleI/O 上提及了 Smart App update,即应用增量升级,或者叫做差分升级的做法,并在新版本的GooglePlay中得到支持。 因为我做的应用程序要放入国内app市场.所以暂时不用Smart App update.
但用的升级方式类似于Smart Appupdate.也是应用增量升级.说到这里,你估计还不明白什么叫增量升级吧.下面我来解释下什么叫增量升级.

现在你的手机用的A应用程序,版本为1.1,大小为8M左右.A应用程序现在已经升级为1.2版本,大小为20M左右.此时,你就通过一个软件(称为C),把A应用程序的1.1版本和1.2版本进行比较,把不相同的部分存储在一个B的文件里面(20-8=12M,B大概为12M).然后发布B文件,用户下载到B文件,然后通过C把B文件和1.1版本进行合并生成1.2版本.此时用户已经成为你发面的最新版本.C为补丁生成软件,B为应用程序补丁.用过linux系统同学就知道,先用diff命令分析二个版本不同之处,再用patch命令打二个版本不同之处打包成补丁.此方式升级称为增量升级.
优点:节约流量,对于20M以上的应用程序或者游戏,很有用.
缺点:增量升级是二个版本间进行打补丁升级.对应不同版本,需要打不同的补丁.例如:现在发C版本,有些用户还是A版本,有些用户还是B版本,因此你必须针对A版本用户打A和C版本补丁,针对B版本用户打B和C版本补丁.

在这章节,我主要介绍增量升级.

原创粉丝点击