Android 的热修复:项目中用的是阿里的AndfIx;
Andfix功能:用来修复线上严重的,紧急的或者安全性的bug
参考文章://www.greatytc.com/p/479b8c7ec3e3和 http://blog.csdn.net/yanzeyanga/article/details/51384254
Demo下载地址:https://github.com/SOFTPOWER1991/AndFixDemo
1、先了解andfix原理机制
2、集成AndFix、
// 通过推送获取补丁名称,补丁存放路径可以写死前半部分
//1、获取读写权限
//2、判断文件是否存在,已经用过的补丁名称都会放在SP里面,如果有同名的就视为有了,就不在重新下载了
//3、检测和服务器约定的路径是否正确(如果是写死的就不用这一步了)
//4、下载补丁
/*********************************************/
//下载完之后
//安装补丁,调用HotFixServer进行补丁的安装
//如果是多个补丁,利用ItentServe的特性,它会自己一个个的进行不会冲突。
3、需要经过360加固的包,在打补丁时用原来没加固的包作匹对,不要用加固后的包。
遇到的问题:Path in archive: lib/x86/libandfix.so
解决方案:导入dmoe中各io包,在Module:app中加入下面代码,要不然还是会报错.试验最后给公司测试测没有问题OK。
android{
packagingOptions{
exclude'lib/armeabi/libandfix.so'
exclude'lib/x86/libandfix.so'
}
}
最后打补丁,命令窗路径需要进入apkpatch里的apkpatch.bat目录下:
命令如下:
apkpatch.bat -f three.apk -t two.apk -o output1 -k debug.keystore -p 123456 -a test -e 123456-f:新版本-t: 旧版本-o
: 输出目录-k: 打包所用的keystore-p: keystore的密码-a: keystore 用户别名-e: keystore 用户别名密码