apk增量更新

来自github的文章
增量更新,也就是说只更新apk增加的部分,而不是全部进行下载。当然他也并不是简单的加减。
这个适合于手机游戏等软件,对于几M的软件没有什么太大意义。目前的很多软件市场都对这方main进行了支持。
量更新的原理,就是将手机上已安装apk与服务器端最新apk进行二进制对比,得到差分包,用户更新程序时,只需要下载差分包,并在本地使用差分包与已安装apk,合成新版apk。

例如,当前手机中已安装微博V1,大小为12.8MB,现在微博发布了最新版V2,大小为15.4MB,我们对两个版本的apk文件差分比对之后,发现差异只有3M,那么用户就只需要要下载一个3M的差分包,使用旧版apk与这个差分包,合成得到一个新版本apk,提醒用户安装即可,不需要整包下载15.4M的微博V2版apk。

apk文件的差分、合成,可以通过 开源的二进制比较工具 bsdiff 来实现,又因为bsdiff依赖bzip2,所以我们还需要用到 bzip2

bsdiff中,bsdiff.c 用于生成差分包,bspatch.c 用于合成文件。

弄清楚原理之后,我们想实现增量更新,共需要做3件事:

在服务器端,生成两个版本apk的差分包;

在手机客户端,使用已安装的apk与这个差分包进行合成,得到新版的微博apk;

校验新合成的apk文件是否完整,MD5或SHA1是否正确,如正确,则引导用户安装;

过程分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值