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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章