android AndFix热补丁框架(不发版本,修复线上bug)
2016-03-19 16:52
639 查看
===================================================================
AndFix介绍
AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件原理
![](http://www.2cto.com/uploadfile/Collfiles/20151213/20151213091406145.png)
替代方式
AndFix判断java自定义的声明方法是否应该被替代,它在ATR上使用art的替代方法,在X86上使用dalvik的替代方法,加载方式是不同的,对于Dalvik来说,需要改变本地的目标文件,连接成AndFix自己的加载方式,这种方式需要注册回掉;对于ART来说,只需要改变自身的ArtMethod属性来取代它修复过程
![](http://www.2cto.com/uploadfile/Collfiles/20151213/20151213091406146.png)
使用方式
1.添加AndFix依赖包?
?
3.添加新补丁
?
生成补丁的工具
官方提供的工具apkpatch下载解压之后长这样:
![](http://www.2cto.com/uploadfile/Collfiles/20151213/20151213091406147.png)
.bat是留给window用的
.sh是OSX用的<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">
./apkpatch.sh -f new.apk -t old.apk -o output1 -k debug.keystore -p android -a androiddebugkey -e android -f :新版本 -t : 旧版本 -o : 输出目录 -k : 打包所用的keystore -p : keystore的密码 -a : keystore 用户别名 -e : keystore 用户别名密码
这是我本地使用的命令:
![](http://www.2cto.com/uploadfile/Collfiles/20151213/20151213091407149.png)
两个apk之间的变换都会在这里实现出来,当然只能改变方法,不能改变UI方面的东西
生成这么个东西:
![](http://www.2cto.com/uploadfile/Collfiles/20151213/20151213091407151.png)
上面这个.apatch的文件就是补丁啦!
混淆
?多次打补丁
如果本地保存了多个补丁,那么AndFix会按照补丁生成的时间顺序加载补丁。具体是根据.apatch文件中的PATCH.MF的字段Created-Time。安全性
开发者需要验证下载过来的apatch文件的签名是否就是在使用apkpatch工具时使用的签名,如果不验证那么任何人都可以制作自己的apatch文件来对你的APP进行修改。官网还有一条,需要验证optimize file的指纹。
相关文章推荐
- 插件管理框架 for Delphi(一)
- PJBlog存在SQL注入漏洞大家要快下补丁了
- 使用CSS框架布局的缺点和优点小结
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react
- 简单介绍不用库(框架)自己写ajax
- asp.net4.0框架下验证机制失效的原因及处理办法
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记
- Flex中最好的MVC框架Mate框架
- JavaScript 异步调用框架 (Part 4 - 链式调用)
- JavaScript 异步调用框架 (Part 2 - 用例设计)