android增加so库,以及jar包。下载地址
在obj文件夹下选择相应的cpu 动态库。
private static int mergeApk(String md5,String outFilePath,String patchPath){ if(!TextUtils.isEmpty(md5)){ if(fileIsExists(patchPath) > 0){ String patchMd5 = ApkUtils.getFileMD5(new File(patchPath)); if(!md5.toLowerCase(Locale.getDefault()).equals(patchMd5.toLowerCase(Locale.getDefault()))){ return 0; } } } String oldfile = ApkUtils.getSourceApkPath(MiscHelper.mActivity, getPackageName()); boolean result = BsPatch.make(oldfile, outFilePath, patchPath); if(result){ return 1; } return 0; }
boolean result = BsPatch.make(oldfile, outFilePath, patchPath);//是合并差分包,可以直接调用,不做MD5校验
ApkUtils.installApk(context, apkPath);//安装应用,这个接口不支持targetSdkVersion > 23 调用, targetSdkVersion >23自行适配FileUriExposedException异常
打差分包脚本,具体查看test.py
import bfpatch bfpatch.bfpatch_main(oriApkDir,"201805112027")
第一参数是apk路径,第二个参数是app版本号(唯一标识,用来做区分用,可以其他唯一标识),脚本会自动把oriApkDir文件复制,并重新以versionCode重新命名。自动生成与Apk文件夹下的差分包。生成的文件在Patch文件夹内。如果希望每次生成的差分包分开文件夹,修改bgpatch.py 下的
#outDir = os.getcwd()+"/"+newApkPath.replace(".apk","") outDir = os.getcwd()+"/Patch"
切换注释
参考
https://blog.csdn.net/ywl5320/article/details/78338149?locationNum=6&fps=1