AndFix热修复的理解
一、 AndFix的热修复方式:
二、AndFix的修复流程:
上图大致的流程是:
1、检测bug 2、分析原因 3、创建分支-修改bug-测试 4、生成.patch文件 5、验证是否修复 6、完成
AndFix热修复的主要方式是以替换方法的方式进行修复;
优点:原理简单,集成简单,即时生效;
缺点:只能修复方法级的bug,极大地限制了使用的场景,
无法添加新的类和新的字段;
三、下面是对使用方法的封装
/** * 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(); } } } }