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 文件,否则下次可能无法生成补丁包.

其实官网的相关说明文档还是蛮详细的。只要跟着指南一步一步操作就会可以实现功能了,至于应用到具体的项目中时,肯定还会有各种各样的冲突,坑肯定还是有不少的。

发布了48 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/jacksinrow/article/details/84661363