Bugly 热更新简单介绍

Bugly 热更新介绍 Bugly 采用 微信Tinker 的开源方案,并集成了自动下载补丁包、合成、并应用补丁的功能,同时提供了管理后台。检查下载补丁包在启动应用时,并在下次启动应用时生效补丁包。
集成 Bugly SDK 请参照官方文档:https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20181014122344

注意:不能更新 AndroidManifest 文件,参见:https://github.com/Tencent/tinker#known-issues 争议第 1 条
tinker-support.gradle 配置文件主要要修改参数:
// 此处填写每次构建生成的基准包目录 def baseApkDir = "app-0402-18-31-11"tinkerSupport { ...// 构建基准包和补丁包都要指定不同的tinkerId,并且必须保证唯一性 tinkerId = "patch-1.81-12"// 构建多渠道补丁时使用 buildAllFlavorsDir = "${bakPath}/${baseApkDir}"// 是否启用加固模式,默认为false.(tinker-spport 1.0.7起支持) isProtectedApp = true// 是否开启反射Application模式 enableProxyApplication = true }

  • tinkerId 无论是在打基包或补丁包时都要修改该值,并保持唯一性
  • buildAllFlavorsDir 构建多渠道打包时用到,默认被注释状态
  • isProtectedApp 表示启用加固模式,默认被注释状态
  • enableProxyApplication 开启反射 Application 模式,快捷集成 SDK,默认为 false
打包过程
  • 生成基包
    1. 修改 TinkerId 为 base-version
    2. 生成包 Gradle Projects -> :app -> Tasks -> build -> assembleRelease
    3. 获取 APK,在 /app/build/bakApk/baseApkDir/flavors/app-flavor-release.apk
  • 生成补丁包
    1. 修改代码
    2. 修改 TinkerId 为 patch-version
    3. 设置 baseApkDir 路径为基包的名称
    4. 生成基包 Gradle Projects -> :app -> Tasks -> tinker-support -> buildAllFlavorsTinkerPatchRelease
    5. 获取 APK,在 /app/build/output/patch/flavors/release/patch_signed_7zip.apk
注意事项
  • 生成基包后记得保存 app-release-R.txt 文件,否则下次可能无法生成补丁包.
【Bugly 热更新简单介绍】其实官网的相关说明文档还是蛮详细的。只要跟着指南一步一步操作就会可以实现功能了,至于应用到具体的项目中时,肯定还会有各种各样的冲突,坑肯定还是有不少的。

    推荐阅读