您的位置:首页 > 移动开发 > Android开发

Android 热修复-AndFix

2016-06-13 00:00 253 查看
摘要: 在我们发布的应用中都可能存在bug,而修复bug我们需要重新发包,但是重新发包会影响用户的体验,并且浪费用户的流量,重新发包用户需要下载整个包进行安装,这时我们可以考虑不需要重新发包,只需要向用户推送一个补丁进行修复就可以了。

在我们发布的应用中都可能存在bug,而修复bug我们需要重新发包,但是重新发包会影响用户的体验,并且浪费用户的流量,重新发包用户需要下载整个包进行安装,这时我们可以考虑不需要重新发包,只需要向用户推送一个补丁进行修复就可以了。
在这里我将向大家推荐AndFix 热修复,AndFix是阿里开源的一个热修复框架,AndFix它的原理简单而纯粹。我们可以通过apkpatch工具生成一个差量文件(.apatch)文件。
Demo下载地址:点击打开链接

AndFix原理



方法替换过程



.apatch文件生成

在cmd下输入 apkpatch.bat -f new.apk -t old.apk -o xxx -k xxx -p xxx -a ckb -e xxx
-f :新版本
-t : 旧版本
-o : 输出目录
-k : 打包所用的keystore的路径
-p : keystore的密码
-a : keystore 用户别名
-e : keystore 用户别名密码



执行完之后会生成一个.apatch 文件



在本实例中可以将文件重命名out.apatch,拷贝至sd卡根目录下进行测试

在android studio 中build.gradle 需要添加 compile 'com.alipay.euler:andfix:0.3.1@aar '
混淆需要添加下列混淆语句
-keep class * extends java.lang.annotation.Annotation
-keepclasseswithmembernames class * { native ; }
-keep class com.alipay.euler.andfix.** { *; }

注意:AndFix只支持修复代码部分,资源文件不支持,并且下载的补丁不能删除,在版本更新时,请删除sd卡补丁

框架源码地址:https://github.com/alibaba/AndFix
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息