AndFix热修复的理解

   一、 AndFix的热修复方式:

AndFix热修复的理解

二、AndFix的修复流程:

AndFix热修复的理解

上图大致的流程是:

1、检测bug 2、分析原因 3、创建分支-修改bug-测试 4、生成.patch文件 5、验证是否修复 6、完成

     点击下载apkpatch

AndFix热修复的主要方式是以替换方法的方式进行修复;

优点:原理简单,集成简单,即时生效;

缺点:只能修复方法级的bug,极大地限制了使用的场景,

  无法添加新的类和新的字段;


三、下面是对使用方法的封装

 获取app版本号的工具类

/**
 * Created by ztz on 2018/2/4.
 *
 * 使用单例模式进行封装andfix
 */

public class AndFixUtil {

    private static AndFixUtil mInstance = null;
    private PatchManager mPatchManager = null;

    public static AndFixUtil getInstance(){
        if (mInstance == null){
            synchronized (AndFixUtil.class){
                if (mInstance == null){
                    mInstance = new AndFixUtil();
                }
            }
        }
        return mInstance;
    }

    //初始化AndFix方法
    public void initPatch(Context context){
        mPatchManager = new PatchManager(context);
        //获取app的版本
        mPatchManager.init(String.valueOf(VersionCodeUtil.getVersionCodeUtil(context)));
        mPatchManager.loadPatch();
    }

    //加载Patch方法
    public void addPatch(String path){
        if (mPatchManager != null){
            try {
                mPatchManager.addPatch(path);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}