AndHotFix热修补使用总结
来源:互联网 发布:淘宝图片大全 编辑:程序博客网 时间:2024/06/03 02:44
今天给大家介绍AndHotFix热修补的使用,也没有那么的难,我结合了github和csdn的一些东西,自己总结出来一套非常简单的操作流程。
这个就是我结合出来的AndHotFix的结构,第一个文件夹是类库,第二个文件夹是生成.apatch补丁文件,第三个和第四个是例子,只需要里面的apI的使用就好了。
那么首先,在application里的oncreate里面进行一些初始化操作
mPatchManager = new PatchManager(this);mPatchManager.init("1.0"); // 初始化patch版本Log.d(TAG, "MyHotFixApp:初始化patch管理类和patch版本完成");// load patch // 加载已经添加到PatchManager中的patchmPatchManager.loadPatch();Log.d(TAG, "MyHotFixApp:加载已经添加到PatchManager中的patch完成");
<span style="white-space:pre"></span>//这一步代码可以放到网络请求里面请求服务器的补丁try {// .apatch file pathString patchFileString = Environment.getExternalStorageDirectory().getAbsolutePath() + APATCH_PATH;//添加patch,只需指定patch的路径即可,补丁会立即生效mPatchManager.addPatch(patchFileString);Log.d(TAG, "MyHotFixApp:apatch:" + patchFileString + "添加完成");} catch (IOException e) {Log.e(TAG, "MyHotFixApp:IOException", e);}
在PatchManager.init()时候传入一个参数是版本号 ,如果版本号不一致,就会删除补丁,这里就传入当前项目的版本号就行了。
然后PatchManager.loadPatch();是在程序一运行起来就去加载已经添加的补丁
在服务器获取到.apatch文件以后,就可以调用addPatch方法去添加一个补丁,这里添加之后不需要再Load一遍,因为PatchManager类里面的addPatch方法再add后自己就load了。(这里建议服务器端再给补丁文件命名时,做一个文件的md5校验,给文件名命名为文件的md5,客户端下载到文件后再获取文件的Md5,去和文件名对比一下,因为http传输有时候不靠谱,丢包有时候会发生,如果我们加载了一个残废的补丁,那么项目也就挂了)
那么补丁如果生成呢,网上说的千奇百怪,不过不怕,我这半分钟就生成出来
这个就是第二个文件夹的东西,我们把需要旧包,新包和key放到这里面,然后打开cmd输入
首先定位到apkpatch-1.0.3文件夹下然后输入
apkpatch.bat -f <新包> -t <旧包> -o <输出文件夹的名称> -k <key文件> -p <key密码> -a <key的alias> -e <alias密码>
然后等一会在下面会出现add Modified Method: 什么什么的,只要不出现异常信息,就是成功的.
然后在输出文件夹里面会有一个new-乱七八糟.apatch的文件,这个就是补丁文件了,把它给服务器端就可以了。
那么每次上版本都要留一份当前版本的项目代码,和安装包,这样才便于我们去做修补。
热修补工具下载地址
好啦,拜拜( ^_^ )/~~拜拜
- AndHotFix热修补使用总结
- AndHotFix 阿里HotFix(热修复)
- andFix进行热修补
- android 热修补AndFix
- android 热修补之andfix实践
- Android 热修补方案(AndFix)
- iOS中 动态热修补技术JSPatch 韩俊强的博客
- 微信Tinker热修补的快速集成详细步骤
- 微信Tinker热修补的快速集成详细步骤
- git commit --amend修补提交用法总结
- 如何使用 SUS 执行修补程序管理
- XSS漏洞修补及预防--使用过滤器
- 使用jspatch进行热修复的实战总结
- 使用patch修补python中serial.tools中的一个Bug
- 使用拦截器Filter修补输入框的xss漏洞
- Mysql热备份总结
- Mysql热备份总结
- Android 热修复总结
- 通知栏框架
- 包与访问控制权限及错误: 找不到或无法加载主类
- It's All In The Mind 多校联赛第二场1109
- 我所理解的Cocos2d-x 全新的绘制系统
- Q13:在O(1)时间删除链表结点
- AndHotFix热修补使用总结
- Q14:调整数组顺序使奇数位于偶数前面
- 通气管引起的输纸故障
- [李景山php]每天laravel-20160924|PiplineServiceProvider.php
- 【公开课】【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践
- javaSE笔记
- Java基本概念
- Android搬砖之路
- SDUT3341数据结构实验之二叉树二:遍历二叉树