AndFix热修复初步上手

最近在维护项目的过程中,有了一个新的需求,让已经上线的APP增加Bug实时修复的功能。了解了腾讯的Tinker还有阿里的AndFix。最终选择了AndFix。

最近也慢慢养成了一个习惯,在项目里面使用到一门技术,我会先大概的了解一下这门技术的来源和基本原理,这样心里更踏实,加深对这门技术的“感情”。

AndFix简单介绍

AndFix 是阿里巴巴开源的 Android 应用热修复工具,帮助 Anroid 开发者修复应用的线上问题。Andfix 是 “Android hot-fix” 的缩写。支持 Android 2.3 - 6.0,ARM 和 x86 架构,dalvik 运行时和 art 运行时。AndFix 的分支是 .apatch 文件。

AndFix一步一步接入项目

1、下载文件解压后,目录文件清单如下,因为patch文件路径是hardcode在/sdcrad/out.patch,使用时确保放在这个路径。

目录下文件介绍操作说明

/APK/app-release.apk线上使用着的apk(有bug存在)请安装到手机上

/APK/app-release_fix.apk修改bug后签名打包的apk不用安装,生成patch时用到

/apatchtools/apkpatch.sh生成patch工具类使用下面接入步骤的命令即可生成.apatch文件到指定目录

/apatch/out.apatchfixbug后生成的patch文件请放在 /sdcrad/out.patch

sourcecode源码如果要修改apatch指定路径可以修改源码演示

2、开始接入

首先:配置Gradle

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

1) 初始化PathManager

pathManager = new PathManager(context);

pathManager.init(appversion); // current version

2)   加载 patch,一般在Application 的 onCreate()里面加载

pathManager.loadPath();

3)  加载 patch. 下载path完毕后即可加载patch

pathManager.addPath(path)

具体实现代码如下:

1、在Application的OnCreate()方法里面,初始化AndFix:

2、在App的欢迎界面,开始载入AndFix.

AndFix热修复初步上手_第1张图片

3、建议在载入AndFix之后,再给服务端一个数据响应,提示补丁已经加载完成,这样就形成一个完整的热修复的

三、使用生成patch工具类命令

usage: apkpatch

-f

-t

-o

-k

-p <***>

-a

-e <***>

-a,--alias keystore entry alias.

-e,--epassword <***> keystore entry password.

-f,--from new Apk file path.

-k,--keystore keystore path.

-n,--name patch name.

-o,--out output dir.

-p,--kpassword <***> keystore password.

-t,--to old Apk file path.

AndFix热修复命令行

最后一步了,拿到补丁文件,打通整个热修复。

1、这里有你需要的关键性文件,在我的云盘里分享给你:

http://pan.baidu.com/s/1bK4k70 ( 链接需要在下方点击阅读原文进行下载)

2、解压该文件,在文件夹中的命令行下面执行以下命令:

apkpatch.sh -f new.apk -t old.apk -o ./ -k app签名 -p 密码-a App签名的别名 -e 密码

3、把生成的补丁文件放入SD卡内,等重启APP,等APP加载的到补丁文件的时候,热修复的基本流程就完成了!

命令行解析

new.apk 和 old.apk 都是需要经过签名打包的apk ,  new.apk是bug修复完成的版本,old.apk是有Bug的版本。

更多内容请关注我的个人微信公众号:前端开发技术栈

AndFix热修复初步上手_第2张图片

你可能感兴趣的:(AndFix热修复初步上手)