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,无法使补丁生效

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/29/tinkerpatch-sdk-initialization/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
TinkerPatch SDK 初始化
初始化TinkerPatch的SDK,无需考虑Tinker是如何下载/合成/应用补丁包,也无需引入Tinker的相关类。 reflectApplication = true 的情况 若使用reflectApplicati……
<<上一篇
下一篇>>
文章目录
关闭
目 录