目前开源最新版本是 0.5.0 , 问题还是很多,于是使用的0.4.1的 稳定版。
compile 'com.alipay.euler:andfix:0.4.1@aar'
使用工具对比原始apk 生成.apatch 补丁包后,移动端下载下来,通过PatchManager.loadPath(File ) 安装此补丁包,也可以通过 PatchManager.removeAllPatch()删除所有历史补丁包
局限性:
1 无法修改so
2 无法修改布局
3 5.0以上 新增类、方法有时会有问题 尽量避免
4 addPatch 是及时生效 removeAllPatch 是下次启动生效
6 修改的方法如果方法内部实现为空,会出现修复失败的情况
7 aidl有更新的话补丁包生成失败
8 二次对一个类做修复操作会导致修复的方法无法调用该类中的其他方法
遇到的问题:
第一次修改一个方法时,是使用原始class 来修改 MainActivity.a() -> MainActivity_CF.a();
第二次修改此方法,方法内部新增调用class 中其他方法时 会 出现异常 MainActivity_CF.b() can not ..... 重启后正常加载
不知如何解决
因此若是要使用andrix的话,只能手动控制 只会加载一次 patch。