热更新的使用(腾讯的Bugly)

热更新解决方案,选择的是腾讯的bugly,同时附带着bug收集,很好用,反馈率很高,也比较准,目前对集成的项目来看还没有太大的问题。0.0多渠道打包速度太慢不知道算不算。

腾讯bugle理解:热更分为基准包+补丁包;基准包为线上版本在运行的apk包,补丁包为依赖于基准包而生成的补丁文件,需要上传到bugly更新列表中;补丁包上传到bugly更新列表成功的前提是基准包在补丁包上传之前在APP上联网运行过。。当然,较大程度的更新还是依赖于发APK包的形式,小的更新+解决比较着急致命的bug直接使用热更即可。

bugly热更新的局限性

1、不支持修改清单文件,不支持新增android端四大组件(页面、Service服务,广播、数据库)。后续版本应该也支持了

2、不建议在GP渠道热更新代码。

3、在Android N上对启动时间有轻微影响。

4、不支持部分三星android-21机型,加载补丁时会主动抛出异常。

不支持一些动画类型的资源文件的更新。

官方链接:腾讯bugly官方地址

下面是具体的集成步骤,官方文档介绍的比较详细,这里着重把需要注意的点写下来,少趟坑。

1.工程根目录下“build.gradle”文件中添加:

dependencies {    classpath "com.tencent.bugly:tinker-support:1.1.2"}

1、APP下的build.gradle中添加bugly SDK的依赖

dependencies {  

    compile "com.android.support:multidex:1.0.1" // 多dex配置    

    compile 'com.tencent.bugly:crashreport_upgrade:1.3.5'    // 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)    

    compile 'com.tencent.tinker:tinker-android-lib:1.9.6'    compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0

    }

// 依赖插件脚本apply from: 'tinker-support.gradle'


1、APP创建tinker-support.gradle文件,文件中大体内容为

tinker-support.gradle以及注意点

            针对上述tinker-support.gradle文件中的三个重要点

            1、baseApkDir:打补丁包时依据的基准包地址,打基准包时不用定义。

            2、tinkerId:基础包+补丁包的版本号(打基础包时改为基础包版本号,打补丁包时改为补丁包版本号)

            3、enableProxyApplication:是否使用自己的Application,或者是集成sdk中的application。(文档中有详细说明)

             另外:支持加固模式和多渠道也在上图注释中有,说明一点的是,多渠道打包的时候,只需要在build.gradle中加入productFlavors即可

多渠道打包配置

实例化热更新

实例化热更新SDK

build.gradle中配置好打包信息后,使用Gradle自带的打包命令进行基础包、补丁包的打包

打包命令


多渠道打包的时候,基准包的生成会有单个文件:mapper文件(如果没有,说明build.gradle中的minifyEnabled没有开启混淆)、APK文件、TXT文件,需要进行联网运行的基础包就是该APK文件。补丁包选取patch下的7z.apk文件。上传到bugly后台即可。

补丁包
重启项目补丁下载的回调

下面附完整截图流程,接入Demo需要的联系我私发。

完整接入流程

你可能感兴趣的:(热更新的使用(腾讯的Bugly))