Android增量更新 bsdiff库的修改编译及使用
这一篇文章。来写一下我的android增量更新客户端bsdiff库的项目 ndk编译
这里简单说一下增量更新
增量更新就是 将两个版本的文件差分出补丁文件。更新版本时。客户端只需要下载差分补丁。从而不需要讲新版本安装包全部下载。减少下载数据包大小,减少客户端等待时间。
android增量更新现在常用的是bsdiff这个c开源的二进制差分库来做。由于涉及到NDK编译、
C程序修改、JNI的使用等。对于一些人比较麻烦或者困难。
我把这个增量更新的功能修改调试好的用bsdiff这个库来做增量更新的程序发布出来。
大家可以参考一下。当然我对C语言不怎么熟悉。大家看到的代码有错误的地方。麻烦帮忙提醒一下。也好让我修改修改,不至于误导更多的人。在这里先说声 谢谢
我把我写好的bsdiff的jni调用项目发布在了github上。
https://github.com/brok1n/androidBsdiffUpdate
大家可以下载下来看看。我在这个项目里。已经编译好了各种cpu平台的so大家可以选择使用。
但是注意。我代码里的JniApi不要修改包名。因为jni调用的c程序已经确定好了这个包名。大家可以吧我的包拷贝到你们程序里。吧我包里的测试activity删掉。
也可以将这个项目导出成jar包。当然。导出的也就只有那个JniApi这个类就可以了。
然后在libs下面找自己需要的cpu平台的so文件。然后放到自己项目里面。就可以直接使用了。
至于bsdiff差分库的差分工具。我也把他放到github上大家可以下载使用。
顺便。我也把我用这个库写的demo和可以直接导出jar包的项目也放到github上。大家参考一下。
下面来说一下增量更新的大概流程。以及测试、使用方式。
增量更新流程。
旧版本安装包、新版本安装包 -》 生成差分文件 update.patch –》 将update.patch 上传至版本服务器 -》 客户端检测到新版本,下载update.patch 差分文件 –》 客户端将update.patch 差分文件与当前安装的旧版本apk文件 生成新版本安装包 -》 客户端安装新版本安装包,完成增量更新
下面说一下。我们自己怎么测试。
先准备下面几个文件
旧版本安装包apk 例: old.apk
新版本安装包apk 例: new.apk
bsdiff.exe
将以上三个文件,放入同一个文件夹下。
bsdiff.exe 可以在我的github上面下载。
打开cmd.exe 控制台