比较几款当前流行的热修复框架
sophix ,微信tinker (收费)
Andfix,Amigo(停更了)
Rubust 可以具备修复方法的热修复,还需要再测试下,加固情况下,是否合成补丁正常稳定,会不会影响正常功能。
Rubust
看到到目前为止还在更新中,作为入门级热修复,可以尝鲜下
运行起项目demo
第一步打完签名的release包。 关键步骤签名,release版本,还得开启混淆。
注意点
2 放的是jar文件,不是dex文件
遇到不顺的地方
“robust” 另一个程序正在使用此文件,进程无法访问。
E:\bingleyLearning\AndroidProject\HotFixDemo\app\build\intermediates\compile_and_runtime_not_namespaced_r_class_jar\release\R.jar: 另一个程序正在使用此文件,进程无法访问。
强制杀掉文件也不行,只好重启as(垃圾,我也不知道为啥要这样)
如果不进行,就无法生成mapping 文件
minifyEnabled true
其次是自己定义的
它是有个这样的编译规则,就是你定义比如@mododify 的那个文件,比如有所引用,否则被扫描出来
说是在
something wrong with mappingfile ,cannot find class com.qyy.hotfix.sample.HelloActivity in mapping file
它的意思是说你在HelloActivity.java中有定义了@modify文件,但是这个文件没有所引用,导致在mapping文件查找没找到。所以就报错了。
必须保证第一步是正确的
最终结果
当然成功运行,并且修复了。
但是
我发现了一个不好的现象,重新进来,还是没有修复到原来的样子,看来每次都得重新加载patch