android 热修补AndFix
来源:互联网 发布:淘宝网的相关网站 编辑:程序博客网 时间:2024/04/28 22:45
好久没有写博客了,借着最近比较闲,研究了一下热修补的实现。
搜了好多资料,实现热修补大体分两种方法
1.使用dex 的分包机制。
2.使用第三方开源
1.使用dex 的分包机制。比较麻烦,你需要先了解dex是如何分包的实现的,具体可以参考http://kymjs.com/code/2016/05/08/01
2.使用第三方开源,
其中Dexposed 支持2.3到4.0 系统,不包括3.0 但是到了5.0就不好使了,所以这不是我们今天要讲的。- Dexposed
- AndFix
那就讲讲andFix 全称 Android HotFix 直接说主题吧。
使用方式
1.首先添加依赖 compile 'com.alipay.euler:andfix:0.3.1@aar' 2.在Application.onCreate() 中添加以下代码
patchManager = new PatchManager(context);patchManager.init(appversion);//current versionpatchManager.loadPatch();注意每次appversion变更都会导致所有补丁被删除,如果appversion没有改变,则会加载已经保存的所有补丁。
3.然后在需要的地方调用PatchManager的addPatch方法加载新补丁,比如可以在下载补丁文件之后调用。
4.之后就是打补丁的过程了,首先生成一个apk文件,然后更改代码,在修复bug后生成另一个apk。
通过官方提供的工具apkpatch
生成一个.apatch格式的补丁文件,需要提供原apk,修复后的apk,以及一个签名文件。
可以直接使用命令apkpatch查看具体的使用方法。
使用示例:
1. mac OS
使用命令./apkpatch.sh -f new.apk -t old.apk -o output1 -k test.keystore -p 111111 -a test -e 111111;
2. window
使用命令 apkpatch.bat -f new.apk -t old.apk -o output1 -k test.keystore -p 111111 -a test -e 111111;
注意:不管是哪个系统,都要先进入工具的根目录下 然后操作,必须签名保证路径等信息正确。
具体命令可以参考
命令执行如下:
生成如下三个文件, .apatch就是我们要的文件
你可以在本地建个文件夹,将.apatch放在本地测试下具体是这样的,手机先安装有bug的apk 通过一个button点击调用
String path_all = Environment.getExternalStorageDirectory()+File.separator+ "apatch_path"+File.separator+"123.apatch";
patchManager.addPatch(path_all);
这样就ok了,然后退出本类,再次进入看到的就是你修复后的代码了
5.通过网络传输或者adb push的方式将apatch文件传到手机上,然后运行到addPatch的时候就会加载补丁。
加载过的补丁会被保存到data/packagename/files/apatch_opt目录下,所以下载过来的补丁用过一次就可以删除了。
参考文献:http://www.jianshu.com/p/479b8c7ec3e3 https://github.com/dodola/HotFix
0 0
- android 热修补AndFix
- android 热修补之andfix实践
- Android 热修补方案(AndFix)
- andFix进行热修补
- Android 热修复-AndFix
- Android热修复---AndFix
- Android 热修复 AndFix
- Android 热修复AndFix
- Android热更新AndFix
- Android AndFix热更新
- android AndFix--热补丁框架
- Android 热修复之AndFix
- Android AndFix 热修复框架
- Android热修复之AndFix
- Android AndFix 热修复 使用
- Android AndFix 热修复框架
- Android热修复框架andfix
- Android 热修复 andfix demo
- 四、MongoDB数据服务的逻辑结构
- maven install到WEB-INF下的classes,lib
- IntelliJ IDEA中如何显示和关闭----工具栏,目录栏
- WIN7系统下建FTP服务器方法
- Hadoop实验环境
- android 热修补AndFix
- [深度学习论文笔记][Image to Sentence Generation] Deep Visual-Semantic Alignments for Generating Image Descri
- Java多线程面试问题
- Ajax入门必看
- Android学习之路----圆形图片2
- linux蓝牙适配器--驱动安装
- 仿优酷Menu菜单动画的Utils
- C linux下文件拷贝hello
- 前端开发必须知道的JS(一)闭包及应用