Bugly热更新最详细的使用教程

1.第一步请仔细阅读官方文档,如果时间充足,可以观看官方的教程视频,因为文档也许会说的不清楚,官方视频讲的很清楚

https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20171123163535

2.将这个classpath "com.tencent.bugly:tinker-support:latest.release" 配置到项目的外层的build.gradle

如图:
编译好了以后,你就可以使用tinker了。

3.在项目的app目录下创建tinker-support.gradle文件

该文件内容如下:

apply plugin: 'com.tencent.bugly.tinker-support'
def bakPath = file("${buildDir}/bakApk/")
/**
 * 此处填写每次构建生成的基准包目录
 */
def baseApkDir = "app-1205-14-53-05"
/**
 * 对于插件各参数的详细解析请参考
 */
tinkerSupport {// 开启tinker-support插件,默认值true
    enable = true

    // 指定归档目录,默认值当前module的子目录tinker
    autoBackupApkDir = "${bakPath}"

    // 是否启用覆盖tinkerPatch配置功能,默认值false
    // 开启后tinkerPatch配置不生效,即无需添加tinkerPatch
    overrideTinkerPatchConfiguration = true

    // 编译补丁包时,必需指定基线版本的apk,默认值为空
    // 如果为空,则表示不是进行补丁包的编译
    // @{link tinkerPatch.oldApk }
    baseApk = "${bakPath}/${baseApkDir}/app-release.apk"

    // 对应tinker插件applyMapping
    baseApkProguardMapping = "${bakPath}/${baseApkDir}/app-release-mapping.txt"

    // 对应tinker插件applyResourceMapping
    baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-release-R.txt"

    // 构建基准包和补丁包都要指定不同的tinkerId,并且必须保证唯一性,base后面的就是的版本号
    tinkerId = "base-2.0.2"
 //   tinkerId = "patch-2.0.2"
    // 构建多渠道补丁时使用    // buildAllFlavorsDir = "${bakPath}/${baseApkDir}"    // 是否启用加固模式,默认为false.(tinker-spport 1.0.7起支持)    // isProtectedApp = true    // 是否开启反射Application模式    enableProxyApplication = false}/** * 一般来说,我们无需对下面的参数做任何的修改 * 对于各参数的详细介绍请参考: * https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 */tinkerPatch {    //oldApk ="${bakPath}/${appName}/app-release.apk"    ignoreWarning = false    useSign = true    dex {        dexMode = "jar"        pattern = ["classes*.dex"]        loader = []    }    lib {        pattern = ["lib/*/*.so"]    }    res {        pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"]        ignoreChange = []        largeModSize = 100    }    packageConfig {    }    sevenZip {        zipArtifact = "com.tencent.mm:SevenZip:1.1.10"//        path = "/usr/local/bin/7za"    }    buildConfig {        keepDexApply = false        //tinkerId = "1.0.1-base"        //applyMapping = "${bakPath}/${appName}/app-release-mapping.txt" //  可选,设置mapping文件,建议保持旧apkproguard混淆方式        //applyResourceMapping = "${bakPath}/${appName}/app-release-R.txt" // 可选,设置R.txt文件,通过旧apk文件保持ResId的分配    }}

4.在app目录的build.gradle中引入,如图:

apply from: 'tinker-support.gradle'

到了这里如果没报错的话,配置就成功了,如果报错了,也不用怕,检查步骤有木有出错

5.改造MyApplication

除此之外,还需要一个MyApplicationLike类,以前在application中做的事,现在都放在MyApplicationLike里,红色的部分就是应用的MyApplicationLike,包名+你的MyApplicationLike,我的MyApplicationLike东西太多,我就截的官网图

6.至此配置完成,如果你还不清楚的话,请参考官方文档或视频:

https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170912151050

现在我们要先打一个基准包,如图:

打开AS右侧的Gradle,选择app下的build执行Debug或Release命令
成功以后

你会在项目的app目录下的build文件夹内看到你的基准包,你可以人为制造一个小bug,以便进行热修复,接下来,将你的基准包上传至Bugly

如果你没有账号,建议先注册一个账号,非常简单

7.接下来就是重头戏,打出对应版本的补丁


依旧打开AS右侧的Gradle,打开App目录下的 tinker-supporrt执行Debug或Release命令
成功以后,会在你的项目的build文件夹下的outputs文件夹生成 patch和 tinkerPatch这么两个文件夹,其中 tinkerPatch文件夹
里放的是一些打包信息,补丁放在patch里的,就是 .zip结尾的一个包


你可以打开看一哈

Bugly有一个联网上报功能,就是当你的App打开后,他会将你App的一些信息上报到Bugly上面去,这样的话,你的补丁在Bugly上面发布的时候才会匹配到你的App,
补丁和App是一一对应的,如图所示:
这是Bugly的日志,如果你想看的话,请参考本教程的第五步,现在我们可以将补丁发布到Bugly上啦,如图所示:


如果你在发布补丁时出错,是因为还没有联网上报,请先启动你的App,否则你的补丁将匹配不到所对应的App;
补丁上传成功以后,当你在打开App是,Bugly会自动检测是否有新的补丁,如果有,会在后台自动下载并合并你的App
通过查看Bugly的日志 如图:

可以有人会问,为什么还是不行呢?因为你需要重新启动App


重新启动App后:

成功!

8.最后

希望我的教程能够帮到你,切记不要心急,越急反而bug百出

Bugly热更新最详细的使用教程相关推荐

  1. Code Push 热更新使用详细说明和教程

    CodePush CodePush是一个微软开发的云服务器.通过它,开发者可以直接在用户的设备上部署手机应用更新.CodePush相当于一个中心仓库,开发者可以推送当前的更新(包括JS/HTML/CS ...

  2. Android热更新初探,Bugly热更新的集成和使用(让你的应用轻松具备热更新能力)

    介绍   在介绍Bugly之前,需要先向大家简单介绍下一些热更新的相关内容.当前市面的热补丁方案有很多,其中比较出名的有阿里的AndFix.美团的Robust以及QZone的超级补丁方案.但它们都存在 ...

  3. CodePush热更新组件详细接入教程

    CodePush热更新组件详细接入教程 什么是CodePush CodePush是一个微软开发的云服务器.通过它,开发者可以直接在用户的设备上部署手机应用更新.CodePush相当于一个中心仓库,开发 ...

  4. walle多渠道打包+Tinker(bugly)热更新集成+360加固(乐固)

    这三个东东是干啥的相信大家都有所耳闻了,如果你没有听说过,请出门左拐,百度一下你就知道.这里不对这三个东东具体的集成方式做详细的介绍,因为官方文档已经写的很详细了,主要是对同时使用这三个东东时所需要注 ...

  5. bugly热更新加固应用失败详解

    最近做了一个热更新的功能,前几天把热更新的坑全部踩了一遍之后,热更新功能得以使用,但是昨天又发现了一个新的问题,就是热更新成功,但是加固后的包就不行了.注意:我这里是用的360和乐固加固测试的. 最初 ...

  6. Cordova App 热更新 超详细教程

    前言: Cordova热更新的一些要点: 1.在不用重新安装App的情况下,更新你的代码.可以越过应用商店的审核步骤. 2.涉及的插件依赖发生变化时,无法使用热更新,需要去应用商店下载最新版本安装. ...

  7. bugly热更新使用

    官网文档:https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20181014122344 官网介绍 1 ...

  8. bugly热更新、多渠道集成及加固问题

    Bugly Android热更新使用指南–>大部分步骤按照文档即可:官方文档 ========================================================== ...

  9. war包热更新_热更新实践:Bugly热更新打包及修复

    上一篇[热更新:使用Bugly集成的Tinker]主要是说的配置,配置Tinker确实很麻烦,当然好处也是很大的.不仅支持各种类,so,资源的替换,体积也较小,是一款很强大的热修复工具.妈妈再也不用担 ...

  10. android热更新bugly

    工作中偶尔会遇到的场景:当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装 ...

最新文章

  1. Spring Boot集成Swagger导入YApi@无界编程
  2. 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍
  3. 【.net部署】Server Error in ‘/‘ Application.错误解决方案
  4. 敏捷开发_全面解析瀑布式开发和敏捷式开发
  5. 一文读懂什么是C++移动语义《一》
  6. Java里的稀疏矩阵Sparse Array
  7. python能自学成功吗-python能够自学吗
  8. 不用写代码,谷歌教你如何用2个小时做出只属于你的游戏。
  9. 多投资机构点评神州信息2019业绩:看好金融信创,给出增持评级!
  10. 微信小程序input标签详解
  11. 芯片架构--四大处理器架构
  12. hive  explode(split(split_feild,‘split_char‘)) split_feild为null 整条数据会丢掉
  13. python re 正则提取中文
  14. ORA-3136报错
  15. 前后端齐全的扫码点餐小程序(后端Java)
  16. 据说,年薪百万的程序员,都是这么开悟的---笑一笑十年少
  17. 点击“加入QQ群”链接打开电脑QQ扫码后发现登录地点不是本地
  18. 计算机三级在线题库,计算机三级网络技术题库(附答案)
  19. 【CSDN问答】使用体验、产品BUG和改进建议
  20. python做公众号赚钱_太强了!做副业月入3W的大佬公众号,值得了解

热门文章

  1. 给 21 岁的自己 6 点建议
  2. 分层结构的生活例子_系统抽样和分层抽样在现实生活中有什么例子?
  3. 关于microsoft html help workshop的一些草蛋问题
  4. 那些年,Linus torvalds大神喷过的技术
  5. 镶锆石、侧边指纹、双屏翻盖机,三星的这款2万块手机,只有土豪能懂
  6. 也许是全网最全的 Angular 新手入门指南
  7. 点餐系统——数据库设计
  8. 财务需要哪些计算机能力,建设财务共享中心,财务人员应具备哪些能力?
  9. OkHttp使用及工具类封装
  10. 虚拟化是什么意思?包含哪些技术?与私有云有什么区别?