Tinker类相关接口
Tinker类是整个库的核心,基本所有的补丁相关的信息我们都可以在这里获取到。TinkerApplication也有一些获取tinkerFlag的相关API,它们可以在Tinker未被初始化前使用。
获取单例的方法
获取单例的方法非常简单:
- Tinker manager = Tinker.with(context);
获取加载状态
loaded
成员变量是标记是否有补丁加载成功的标记,只有它为true时,才能保证TinkerLoadResult的各个变量非空。
- boolean isLoaded = Tinker.with(context).isTinkerLoaded();
- boolean isInstalled = Tinker.with(context).isTinkerInstalled();
获得加载的结果,也就是TinkerLoadResult的实例。它是有可能为空的,使用它请先确保loaded
为true:
- TinkerLoadResult loadResult = Tinker.with(context).getTinkerLoadResultIfPresent();
清除补丁
当补丁出现异常或者某些情况,我们可能希望清空全部补丁,调用方法为:
- Tinker.with(context).cleanPatch();
当然我们也可以选择卸载某个版本的补丁文件:
- Tinker.with(context).cleanPatchByVersion();
在升级版本时我们也无须手动去清除补丁,框架已经为我们做了这件事情。需要注意的是,在补丁已经加载的前提下清除补丁,可能会引起crash。这个时候更好重启一下所有的进程。
其他API这里不再一一概述,请大家自行翻阅Tinker.java。