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的文件,这个就是补丁文件了,把它给服务器端就可以了。


那么每次上版本都要留一份当前版本的项目代码,和安装包,这样才便于我们去做修补。


热修补工具下载地址


好啦,拜拜( ^_^ )/~~拜拜


0 0