Android-热修复技术之AndFix

相比知道热修复的童学,对基本原理应该有所了解吧,这边不加以累诉

制作补丁过程

工具下载:apkpatch
(https://raw.githubusercontent.com/alibaba/AndFix/master/tools/apkpatch-1.0.3.zip)
文件准备:一个存在Bug或者原始的Apk(old.apk)、一个修改后的Apk(new.apk)、一 个签名文件(例如:demo.jks)。即可

1.1 .1签名文件生成
Android Studio制作签名文件步骤:Build->Generate Singned Apk 如图:


Android-热修复技术之AndFix_第1张图片
D%4~6ZRVMK_3KZD11NYR`4V.png

点击Create new..


Android-热修复技术之AndFix_第2张图片
image.png

填写完成后,点击ok,回到Generate Singned Apk界面,点击next


Android-热修复技术之AndFix_第3张图片
image.png

在Build Type选择构建类型release。选择Finish这样就生成了签名文件。
APK Destination Folder : apk目标文件夹
Build Type : 构建类型
release是发布版本用的签名文件
debug是debug用的签名文件

1.1.2配置gradle让APP自动签名
1 . 点击Project Structure


image.png
Android-热修复技术之AndFix_第4张图片
image.png

点击OK,完成配置,项目加载完成后

Android-热修复技术之AndFix_第5张图片
image.png

2.生成补丁

打开cmd ->进入apkpatch位置(cd /d D:\software\apkpatch-1.0.3)->运行
apkpatch -f new.apk -t old.apk -o outApk -k demo.jks -p xxxxxx -a key -e xxxxx

Android-热修复技术之AndFix_第6张图片
image.png

-f Bug修改后的Apk
-t Bug未修改Apk
-o 输出位置
-k 签名文件位置
-p 签名文件密码
-a 别名
-e 别名密码


Android-热修复技术之AndFix_第7张图片
image.png

将生成的new-86112f4778c67a620082b737ae673830.apatch补丁重命名为Apk.apatch

image.png

3.集成AndFix

AndFix执行的原理是实现方法体的替换,如下图所示(该图片来自AndFix github介绍):


Android-热修复技术之AndFix_第8张图片
image.png

3.1:添加依赖

dependencies {
compile 'com.alipay.euler:andfix:0.4.0@aar'
}

3.1初始化 PatchManager

patchManager = new PatchManager(context);
patchManager.init("1.0");//current version

3.2 Load patch 加载补丁

patchManager.loadPatch();
通常都是在Application的onCreate()方法中进行初始化。

3.3Add patch 添加补丁

patchManager.addPatch(path);//path:补丁文件下载到本地的路径。
当一个新的补丁文件被下载后,调用addPatch(path)就会立即生效。

贴上下载补丁代码

Android-热修复技术之AndFix_第9张图片
image.png

总结:

只能对某些方法有效,有的手机不兼容,坑太多,不建议使用
有条件的同学可以使用 微信平台的Tinker(http://www.tinkerpatch.com/)
优点:1.修复率高 2.集成简单

你可能感兴趣的:(Android-热修复技术之AndFix)