TinkerLoadResult相关接口

因为加载补丁是在Tinker的Install之前的,我们将加载的结果保存在intent中,然后在Tinker的install方法中恢复这些结果。这里包括补丁的所有信息,例如加载的dex,library,我们定义的package config以及各个文件的目录等。但是需要注意的是,这里面的变量大多数是nullable。若Tinker的loaded为true,除了dexes与libs(要看补丁包里面是否真的有),其他变量可以确保非空。

获取packageConfig:

  1. public String getPackageConfigByName(String name) {
  2. if (packageConfig != null) {
  3. return packageConfig.get(name);
  4. }
  5. return null;
  6. }

这里需要注意的是,检查dex的Md5值需要使用SharePatchFileUtil.verifyDexFileMd5方法,这是由于dex有可能是被我们重新打包成jar模式。

  1. //获得基准包的tinkerId
  2. String oldTinkerId = Tinker.with(context).getTinkerLoadResultIfPresent().getTinkerID();
  3. //获得补丁包的tinkerId
  4. String newTinkerId = Tinker.with(context).getTinkerLoadResultIfPresent().getNewTinkerID();

更多接口请参考TinkerLoadResult.java