Bugly接入Tinker热更新流程

项目中之前已经接入bugly的异常收集和全量更新SDK,为了应对bug及时修复以及一些改动不太大的需求,准备接入Tinker。而Bugly已经对Tinker做了很好的支持,不用从头到尾接一遍。

接入流程:

一、添加插件依赖,在根目录的build.gradle中:
classpath "com.tencent.bugly:tinker-support:1.1.1"
二、集成SDK
    2.1 app module的build.gradle中添加多dex配置、bugly的两个dependencies:
 compile "com.android.support:multidex:1.0.1" // 多dex配置
 compile 'com.tencent.bugly:crashreport_upgrade:1.3.1'
 compile 'com.tencent.bugly:nativecrashreport:latest.release' 
    2.2 app module的build.gradle中添加依赖插件脚本:
apply from: 'tinker-support.gradle'
    2.3 app module里创建文件"tinker-support.gradle",内容见如下引用;
三、初始化SDK:

    取 enableProxyApplication = false 的情况

     3.1 自定义Application类:
public class SampleApplication extends TinkerApplication {
    public SampleApplication() {
        super(ShareConstants.TINKER_ENABLE_ALL, "xxx.xxx.SampleApplicationLike",
                "com.tencent.tinker.loader.TinkerLoader", false);
    }
}

    这个类继承TinkerApplication类,里面仅有一个无参构造方法。该类仅在AndroidManifest的<application>标签的name字段引用;

    3.2 自定义ApplicationLike类

    继承自DefaultApplicationLike;除了将原先Application中的代码移植到该类中,还需再添加三个方法:

        1.构造方法;

        2.onBaseContextAttached();

        3.registerActivityLifecycleCallback();

四、打包发布:
    4.1 编译基准包:

        设置tinkerId = "1.0.1-base",执行app->Tasks->build->assembleRelease,在build->bakApk中生成编译时间命名的文件夹,该apk即基础包;

    4.2 编译补丁包:

        如该包有bug或改动,修改需求之后,设置tinkerId = "1.0.1-patch",执行app->Tasks->tinker-support->buildTinkerPatchRelease,在build/outputs/patch中生成patch_signed_7zip.apk的补丁包

    4.3 将该补丁包上传至bugly热更新平台并发布。


参考Bugly Android热更新使用指南






猜你喜欢

转载自blog.csdn.net/taambernk520/article/details/80237089