概述
上一次我们在window下通过bsdiff的win版实现了在window下的差分,但是一般我们差分都是放在服务器上进行的。所以这次我们要做的就是在服务器上生成.so库,并让项目运行在linux服务器上来实现差分。
需要准备:linux服务器一台,eclipse,bsdiff,bzip2
生成相应的.so库
1.在window的eclipse下新建web项目
编写native方法
public class PatchDiffUtil {
/**
* 拆分
* @param oldApkPath 老apk的路径
* @param newApkPath 新apk的路径
* @param diffPath 差分后的文件路径
*/
public native static void diff(String oldApkPath,String newApkPath,String diffPath);
}
2.生成相应的.h文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_gxl_util_PatchDiffUtil */
#ifndef _Included_com_gxl_util_PatchDiffUtil
#define _Included_com_gxl_util_PatchDiffUtil
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_gxl_util_PatchDiffUtil
* Method: diff
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_com_gxl_util_PatchDiffUtil_diff
(JNIEnv *, jclass, jstring, jstri