A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

热修复实现是基于阿里的一个开源项目AndFix开源项目地址: https://github.com/alibaba/AndFix/


第一步:接入项目


在项目app下build.gradle配置

        compile 'com.alipay.euler:andfix:0.4.0@aar'


第二步:使用AndFix库进行加载补丁

使用方式

1. 初始化PatchManager,并且指定当前版本

                patchManager = new PatchManager(context);
                patchManager.init(appversion);//current version
        
        * app的版本号可以通过如下代码获取得到
                        
                        String appversion= getPackageManager().getPackageInfo(getPackageName(), 0).versionName;

2. 加载补丁
                //这个方法越早执行越好,可以考虑放在Application的onCreate方法中
                patchManager.loadPatch();

3. 加载补丁文件

                //只要下载完补丁,一旦执行这个方法,补丁就会立马生效
                patchManager.addPatch(path);



第三步:制作补丁

下载制作补丁的文件
https://github.com/alibaba/AndFi ... /apkpatch-1.0.3.zip

提供之前存在bug的apk和修复后的apk
然后将2个apk放在工具目录下
在当前目录打开cmd

执行命令后会在工具目录下生成一个patch目录,里面的AndFixDemo-debug-after-86112f4778c67a620082b737ae673830.apatch则是我们生成的补丁文件

        usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***>

eg:

        F:\热修复\apkpatch-1.0.3>apkpatch.bat -f AndFixDemo-debug-after.apk -t AndFixDemo-debug-before.apk -o patch -k test.jks -p 123456 -a test -e 123456






第四步:将补丁拖放到手机上

实际情况是从网络上下载补丁然后通过第二步将bug修复



混淆
在对加入热修复情况下做混淆的时候,在proguard-rules文件里配置

                -keep class * extends java.lang.annotation.Annotation
                -keepclasseswithmembernames class * {
                    native <methods>;
                }

游客,如果您要查看本帖隐藏内容请回复





4 个回复

倒序浏览

回帖奖励 +1

谢谢分享
回复 使用道具 举报
感谢分享                                    
回复 使用道具 举报
好好学习
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马