Bugly热补丁发布和使用
精进课堂热补丁集成的bugly版本的热更新,bugly 则使用的是简化版本的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 | String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk"; |