Bugly热补丁发布和使用

Bugly热补丁发布和使用

精进课堂热补丁集成的bugly版本的热更新,bugly 则使用的是简化版本的tinker 。

bulgy 热补丁接入文档

tinker接入文档

打全渠道包

通常我们执行gradle脚本 assembleReleaseChannels 命令打全渠道包,打包之前需要校验,versionName versionCode是否正确,目前tinkerId是和版本号绑定的也就是versionName, 比如,1.8.0版本,那么tinkerId也是1.8.0,
tinkerId在 app/tinker-support.gradle 脚本中 tinkerId=globalConfig.getAt(“appVersionName”) 获取

上面生成的是按照时间来生成的基准包。

生成补丁包

首先修改tinker-support.gradle 脚本文件的baseApkDir ,改成我们刚才生成的bakApk日期

在AboutUsActivity 修改代码

执行生成热补丁脚本命令buildTinkerPatchRelease 命令生成补丁,补丁生成成功如下图

patch_signed_7zip.apk 是生成之后成功的经过7z压缩的补丁。

补丁生成之后随即选择一个渠道包进行安装,然后补丁包上床bugly 的热补丁发布平台上,进性测试发布,
如果该版本目前没有线上用户,则可选择全量进行测试。

选择发布之后,启动之前安装的渠道包,在logcat中用tinker做关键字过滤,查看日志

这表示补丁已经下发成功到客户端,并且补丁本地合成成功,等待重启进程,退出应用或是关闭屏幕在开启,则会自动重启进程。

补丁合成成功。

本地安装补丁

在AboutUsActivity中initData 方法,有对本地SDCARD 上面的patch_signed_7zip.apk 补丁文件进行加载,测试补丁是否正确,只需要把生成好的补丁文件放到SDCARD 的根目录上面,然后打开关于页面,日志中看logcat 的tinker标签的日志来判断是否补丁成功。

1
2
3
4
5
 String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk";
// File file = new File(path);
// if(file.exists()) {
// Beta.applyTinkerPatch(getApplicationContext(), path);
// }