android增量更新中差分包生成以及合成

本文介绍了Android增量更新的实现原理,通过对比新旧APK生成二进制差异包,并将其合并到旧APK中,实现更新。内容包括:下载bsdiff-4.3和bzip2-1.0.6工具;检查Android Studio版本及配置,确保支持C++和NDK;创建带C++支持的项目;导入并编译差分包生成所需文件。
摘要由CSDN通过智能技术生成

网上看了很多的帖子,单对于第一次接触增量更新的朋友,会碰到各种坑,浪费大量时间。

说到增量更新并非热修复,增量更新具体实现逻辑是:根据新旧包之间的差异生成对应的二进制差异包文件,然后将此差异文件合成到老的 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值