搜索
 找回密码
 立即注册

简单一步 , 微信登陆

漫谈Android 增量更新

作者:bearww | 时间:2016-10-31 19:45:18 | 阅读:3577| 只看该作者
在前几年,整体移动网络环境相比现在差很多,加之流量费用又相对较高,因此每当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。而google为了解决了这个问题,提出了Smart App Update,即增量更新(也叫做差分升级)。
尽管现在网络环境有了很大的提升,但一个不争的事实就是应用越做越大,因此,增量更新在目前的仍然是一种解决APP更新**大的有效方案。今天,我们就来聊聊增量更新。

什么是增量更新?
增量更新的关键在于如何理解增量一词。来想想平时我们的开发过程,往往都是今天在昨天的基础上修改一些代码,app的更新也是类似的:往往都是在旧版本的app上进行修改。这样看来,增量更新就是原有app的基础上只更新发生变化的地方,其余保持原样。
与原来每次更新都要下载完整apk包的做法相比,这样做的好处显而易见:每次变化的地方总是比较少,因此更新包的体积就会小很多。比如“师父说”安装包的体积在6m左右,如果不采用增量更新,用户每次更新都需要下载大约6m左右的安装包,而采用增量更新这种方案之后每次只需要下载2m左右的更新包即可,相比原来做法大大减少了用户下载等待的时间。


增量更新的原理
增量更新的原理非常简单,简单的说就是通过某种算法找出新版本和旧版本不一样的地方(这个过程也叫做差分),然后将不一样的地方抽取出来形成所谓的更新补丁(patch),也称之为差分包。客户端在检测到更新的时候,只需要下载差分包到本地,然后将差分包合并至本地的安装包,形成新版本的安装包,文件校验通过后再执行安装即可。本地的安装包通过提取当前已安装应用的apk得到。


演示:差分包的生成与合并
如下图所示:
现在的问题在于如何生成差分包以及合并差分包。这里,我们借助开源库bsdiff来解决以上两个问题。首先我们先演示一下差分包的形成与合并。
收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版