android 增量更新

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"

切换注释

打差分包结构

Apk是历史版本的包都会在里面,打完差分包会自己把当前包移动到Apk目录

Patch是历史差分包

 

参考

https://blog.csdn.net/ywl5320/article/details/78338149?locationNum=6&fps=1 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值