androidBsdiffUpdate

大家好。我是brok1n

这是我基于bsdiff二进制差分库修改而成的安卓客户端增量更新工具。

用这个工具。可以实现Bsdiff二进制差分工具的 差分包和旧版本文件合并成新版本文件的工作。

bsdiff是一个二进制差分工具。可以比较两个文件之间的差异。生成一个补丁文件。

使用这个补丁文件和一个文件。可以生成另一个文件。说的有点绕口了。

bsdiff这个工具具体介绍大家可以在网上找找

简单来说。在安卓版本更新中。可以使用这个增量更新。减小软件更新时需要下载的数据

在安卓版本更新中的运用是

首先有一个旧版本Apk 和一个 新版本Apk 使用bsdiff的差分工具。可以检测出这两个文件的不同之处。

差分工具可以把这个不同之处。写入一个文件中。这个文件就是补丁文件 或者叫 补丁包

我们客户端装了一个旧版旧版本程序 当需要发布新版本时。将旧版本Apk文件和新版本apk文件做差分处理。

生成补丁包 将 补丁包 上传到服务器。 客户端需要更新时。只需要下载这个补丁包,下载到本地后。

使用bsdiff差分库的 patch 合并功能。将补丁包和旧版本Apk文件。生成新版本的apk文件。

这个生成出来的新版本apk文件和要发布的新版本apk文件是一样的。

使用上面这种流程。我们客户端在检测到新版本时,就直接下载补丁包就可以了。

这个生成的补丁包。在常规的版本升级中。补丁包会比新版本apk文件小很多。

这样。客户端就可以减少下载的数据。加快版本更新下载,减少等待时间。减少手机使用的流量。

我这个项目。就是把bsdiff的 patch 合并工具 拆分出来。放在安卓程序里使用。

我这里是用ndk在eclipse下编译的。项目里有编译好的so文件。大家可以直接使用。

项目里也有个activity 简单的写了一下怎么使用这个 patch 合并工具

顺便我也把我写的demo放上来。大家稍作参考。