AndFix热修复集成

先导入依赖:

可以去github看:

 implementation 'com.alipay.euler:andfix:0.5.0@aar'

新建Application初始化

public class AndFixApplication extends Application {
    public static PatchManager mPatchManager;
    @Override
    public void onCreate() {
        super.onCreate();
        mPatchManager = new PatchManager(this);
// String appVersion = getPackageManager().getPackageInfo(getPackageName(),0).versionName;
// mPatchManager.init(appVersion);
        mPatchManager.init("1.0");
        // 加载已经添加到PatchManager中的patch
        mPatchManager.loadPatch();
    }
}

按钮修复:

private static final String APATCH_PATH = "/fix.apatch"; // 补丁文件名

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.btn_xiufu:
                update();
                break;
        }
    }
    private void update() {
        String patchFileStr = Environment.getExternalStorageDirectory().getAbsolutePath() + APATCH_PATH;
        Log.i("sdkPath", "path = : " + patchFileStr);
        try {
            AndFixApplication.mPatchManager.addPatch(patchFileStr);


        } catch (IOException e) {
            e.printStackTrace();
        }
    }

可以写一些修改前的记号

修改前打包 可以改名为old.apk

修改后打包 可以改名为new.apk

然后使用官方提供的工具:https://github.com/alibaba/AndFix/blob/master/tools/apkpatch-1.0.3.zip

讲两个apk放入该目录中。如图:

然后使用cmd进入该目录,使用命令生成补丁:

<u>apkpatch.bat -f 新apk -t 旧apk -o 输出目录 -k app签名文件 -p 签名文件密码 -a 签名文件别名 -e 别名密码</u>

将生成的patch改名与代码中的一致//private static final String APATCH_PATH = "/fix.apatch"; // 补丁文件名

将补丁push到sd卡目录下,点击修复加载补丁文件。

猜你喜欢

转载自blog.csdn.net/weixin_42493749/article/details/82968843