使用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生成基准包

    使用Bugly实现android热更新_第1张图片

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

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

使用Bugly实现android热更新_第2张图片
生成补丁
使用Bugly实现android热更新_第3张图片
补丁目录

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

使用Bugly实现android热更新_第4张图片
上传补丁

上传补丁即可。

你可能感兴趣的:(使用Bugly实现android热更新)