TinkerPatch SDK 初始化

初始化TinkerPatchSDK,无需考虑Tinker是如何下载/合成/应用补丁包,也无需引入Tinker的相关类。

reflectApplication = true 的情况

若使用reflectApplication模式,我们无需为接入Tinker而改造我们的Application类。初始化SDK可参考tinkerpatch-easy-sample中的SampleApplication

public class SampleApplication extends Application {

    ...

    @Override
    public void onCreate() {
        super.onCreate();
        // 可以从这里获得Tinker加载过程的信息
        tinkerApplicationLike = TinkerPatchApplicationLike.getTinkerPatchApplicationLike();

        // 初始化TinkerPatch SDK, 更多配置可参照API章节中的, 初始化SDK
        TinkerPatch.init(tinkerApplicationLike)
            .reflectPatchLibrary()
            .setPatchRollbackOnScreenOff(true)
            .setPatchRestartOnSrceenOff(true)
            .setFetchPatchIntervalByHours(3);

        // 每隔3个小时(通过setFetchPatchIntervalByHours设置)去访问后台时候有更新, 通过handler实现轮训的效果
        TinkerPatch.with().fetchPatchUpdateAndPollWithInterval();
    }

    ...

}

我们将 Tinker 加载补丁过程的结果存放在 TinkerPatchApplicationLike 中。

reflectApplication = false 的情况

若我们已经完成应用的Application改造,即将Application的逻辑移动到ApplicationLike类中。我们可以参考tinkerpatch-sample中的SampleApplicationLike

public class SampleApplicationLike extends DefaultApplicationLike {

    ...

    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化TinkerPatch SDK, 更多配置可参照API章节中的, 初始化 SDK
        TinkerPatch.init(this)
            .reflectPatchLibrary()
            .setPatchRollbackOnScreenOff(true)
            .setPatchRestartOnSrceenOff(true)
            .setFetchPatchIntervalByHours(3);

        // 每隔3个小时(通过setFetchPatchIntervalByHours设置)去访问后台时候有更新, 通过handler实现轮训的效果
        TinkerPatch.with().fetchPatchUpdateAndPollWithInterval();
    }

    ...

}

注意:初始化的代码建议紧跟super.onCreate(),并且所有进程都需要初始化,已达到所有进程都可以被patch的目的

如果确定只想在主进程中初始化tinkerPatch,那也请至少在:patch进程中初始化,否则会有造成:patch进程crash,无法使补丁生效

上一篇 微信热修复框架Tinker集成
下一篇 TinkerPatch基本使用步骤
目录
文章列表
1 React Native学习之PanResponder手势识别
React Native学习之PanResponder手势识别
2
Groovy代码示例 - 变量variable及类型转换
Groovy代码示例 - 变量variable及类型转换
3
整合Nacos和Druid(password使用密文)出现新建连接被拒绝情况
整合Nacos和Druid(password使用密文)出现新建连接被拒绝情况
4
RocketMQ详解——RocketMQ的消息模式
RocketMQ详解——RocketMQ的消息模式
5
Appium自动化测试(4)—— 安装 Appium-Desktop
Appium自动化测试(4)—— 安装 Appium-Desktop
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。