feature
- bundle的动态更新
注意
atlas更新不像hotpatch的立即生效,而是需要用户在patch成功安装之后,重启应用才能生效
接口Api
com.taobao.atlas.update.AtlasUpdater#update
更新的接口
更新的基础信息
/**
* 当前的客户端版本
*/
public String baseVersion;
/**
* 更新后的客户端版本
*/
public String updateVersion;
/**
* 更新的模块列表信息
*/
public List<Item> updateBundles;
public File workDir = new File(RuntimeVariables.androidApplication.getCacheDir(), "atlas_update");
/**
* 更新的模块信息
*/
public static class Item implements Serializable {
/**
* 是不是主dex
*/
public boolean isMainDex;
/**
* bundle 的名称
*/
public String name;
/**
* bundle 版本信息
*/
public String version;
/**
* bundle 的代码仓库对应的版本
*/
public String srcVersion;
/**
* 依赖的 bundle 列表
*/
public List<String> dependency;
}
更新过程
- 解压patch包
- 合并patch包和原始apk中的bundle(在独立进程进行)
- 将合并后新的bundle进行重新的安装
- 更新bundle的列表信息
- 等待用户启动重新加载