andfix实践--bug修复不再需要频繁更新版本了


一.什么是AndFix

AndFix,全称是Android hot-fix。是阿里开源的一个Android热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0。

Github:https://github.com/alibaba/AndFix


二.使用方式

1.首先添加依赖

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

2.初始化数据(最好写在application的oncreate中)

// initialize
            mPatchManager = new PatchManager(this);
            //        注意每次appversion变更都会导致所有补丁被删除,如果appversion没有改变,则会加载已经保存的所有补丁。
            String appversion = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
            mPatchManager.init(appversion);
            mPatchManager.loadPatch();


3.加载数据(addpath)

//addPatch
            //在需要的地方调用PatchManager的addPatch方法加载新补丁,比如可以在下载补丁文件之后调用
            String patchFileString = Environment.getExternalStorageDirectory()
                    .getAbsolutePath() + APATCH_PATH;
            mPatchManager.addPatch(patchFileString);

4.,复制且加载补丁成功后,删除下载的补丁

 File f = new File(this.getFilesDir(), DIR + APATCH_PATH);
            if (f.exists()) {
                boolean result = new File(patchFileString).delete();
                if (!result)
                    Log.e(TAG, patchFileString + " delete fail");
            }

5.生成打包补丁

之后就是打补丁的过程了,首先生成一个apk文件,然后更改代码,在修复bug后生成另一个apk。
通过官方提供的工具apkpatch
生成一个.apatch格式的补丁文件,需要提供原apk,修复后的apk,以及一个签名文件。

具体操作如下:

A:将下载好的zip文件解压出来.(我解压到了G:\andfix)

B:打开命令行工具,通过命令进入上面的解压位置。




C:此时直接输入apkpatch就可以直接使用命令apkpatch查看具体的使用方法。





D:使用示例:

apkpatch -o D:/Patch/ -k debug.keystore -p android-a androiddebugkey -e android -f bug-fix.apk -t release.apk

解释:apkpatch -o     生成路径    -k   kestore密钥文件    -p 密码 -a 用户名 -e 确认密码 -f 新apk -t  旧apk


点击这里下载打包工具



三.局限性

1.无法添加类和字段

2.不能修改xml布局文件


四.demo下载

https://github.com/jin870132/AndFixDemo




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值