使用Bugly实现android热更新

今天研究热更新的时候研究了微信的Tinker热更新框架,后来发现Bugly的升级SDK已经封装好了Tinker。

而且提供一站式服务,还免费 :-D

步骤如下:
  • 1、引用Bugly升级SDK.

    在app module中添加如下引用

     compile 'com.android.support:multidex:1.0.1'// 多dex配置
     compile 'com.tencent.bugly:crashreport_upgrade:latest.release'    //其中latest.release指代最新版本号,也可以指定明确的版本
    

在工程项目bulid.gradle中添加以下代码:
classpath "com.tencent.bugly:tinker-support:latest.release"
为app module添加依赖:
apply from: 'tinker-support.gradle'

  • 2、配置tinker-support.gradle

    在app目录下创建一个tinker-support.gradle文件。
    apply plugin: 'com.tencent.bugly.tinker-support'

       def bakPath = file("${buildDir}/bakApk/")
    
       def appName = "app-0118-15-09-30"
    
       /**
        * 对于插件各参数的详细解析请参考
        */
       tinkerSupport {
       
           // 开启tinker-support插件,默认值true
           enable = true
    
           // 指定归档目录,默认值当前module的子目录tinker
           autoBackupApkDir = "${bakPath}"
    
           // 是否启用覆盖tinkerPatch配置功能,默认值false
           // 开启后tinkerPatch配置不生效,即无需添加tinkerPatch
           overrideTinkerPatchConfiguration = true
                
           // 编译补丁包时,必需指定基线版本的apk,默认值为空
           // 如果为空,则表示不是进行补丁包的编译
           // @{link tinkerPatch.oldApk }
           baseApk =  "${bakPath}/${appName}/app-release.apk"
    
           // 对应tinker插件applyMapping
           baseApkProguardMapping = "${bakPath}/${appName}/app-release-mapping.txt"
    
           // 对应tinker插件applyResourceMapping
           baseApkResourceMapping = "${bakPath}/${appName}/app-release-R.txt"
    
           // 唯一标识当前版本
           tinkerId = "1.0.1-patch"
    
           // 是否开启代理Application,设置之后无须改造Application,默认为false
           enableProxyApplication = true
       }
    
  • 3、生成基准包和补丁包

    按照文档配置好需要的权限,在Application中做好BuglySDK的初始化后我们就可以开始热更新测试了。
    通过build中的assembleRealse生成基准包


    如果您的代码使用了混淆功能还会生成一个mapping文件。

修改tinker-support.gradle中的tinkerId为新版本的标识符。appName为你生成基准包的目录。
然后使用

生成补丁
补丁目录

即可生成补丁,然后通过Bugly后台

上传补丁

上传补丁即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容