Tinker类相关接口

Tinker类是整个库的核心,基本所有的补丁相关的信息我们都可以在这里获取到。TinkerApplication也有一些获取tinkerFlag的相关API,它们可以在Tinker未被初始化前使用。

获取单例的方法

获取单例的方法非常简单:

  1. Tinker manager = Tinker.with(context);

获取加载状态

loaded成员变量是标记是否有补丁加载成功的标记,只有它为true时,才能保证TinkerLoadResult的各个变量非空。

  1. boolean isLoaded = Tinker.with(context).isTinkerLoaded();
  2. boolean isInstalled = Tinker.with(context).isTinkerInstalled();

获得加载的结果,也就是TinkerLoadResult的实例。它是有可能为空的,使用它请先确保loaded为true:

  1. TinkerLoadResult loadResult = Tinker.with(context).getTinkerLoadResultIfPresent();

清除补丁

当补丁出现异常或者某些情况,我们可能希望清空全部补丁,调用方法为:

  1. Tinker.with(context).cleanPatch();

当然我们也可以选择卸载某个版本的补丁文件:

  1. Tinker.with(context).cleanPatchByVersion();

在升级版本时我们也无须手动去清除补丁,框架已经为我们做了这件事情。需要注意的是,在补丁已经加载的前提下清除补丁,可能会引起crash。这个时候更好重启一下所有的进程。

其他API这里不再一一概述,请大家自行翻阅Tinker.java