网上看了很多的帖子,单对于第一次接触增量更新的朋友,会碰到各种坑,浪费大量时间。
说到增量更新并非热修复,增量更新具体实现逻辑是:根据新旧包之间的差异生成对应的二进制差异包文件,然后将此差异文件合成到老的 apk中使之含有新版本的包的代码来达到更新效果。
下面是关于个人查阅资料总结的分差包生成以及合成的具体步骤
一、首先需要下载对应的差分包生成合成的jni文件(bsdiff-4.3、bzip2-1.0.6)
bsdiff-4.3具体文件内容如图:
bzip2-1.0.6具体文件内容如图:
二、要确定的你android studio版本是否是大于2.2,大于2.2的版本可以直接创建带native项目的工程,创建项目时直接勾选 include c++ support选项如图
三、当然AS还要支持ndk编译,如果不支持就需要去安装一些插件主要勾选 CMAKE 、LLDB、NDK安装,如图:
四、前提工作已经准备就绪,按流程创建一个勾选了include C++ support项目。
五、将前面下载下来的工具包里面的c(库文件)导入到cpp文件中,具体需要导入的文件可以参考下图其中bs.h和bs.c是我们需要自己编写的文件:
bs.h头文件:
// // Created by Administrator on 2017/8/15 0015. // #ifndef BSDIFFPATCH_BS_H #define BSDIFFPATCH_BS_H #endif //BSDIFFPATCH_BS_H #include <malloc.h> #include <jni.h> JNIEXPORT jint JNICALL Java_com_example_administrator_applicationc_MainActivity_patch (JNIEnv *env, jobject instance, jstring oldpath_, jstring newpath_,jstring patch_); JNIEXPORT jint JNICALL Java_com_example_administrator_applicationc_MainActivity_diff (JNIEnv *env, jobject instance, jstring oldpath_, jstring newpath_, jstring patch_);bs.c类文件:
// // Created by Administrator on 2017/8/15 0015. // #include