Bugly 热修复学习笔记

2017-02-20  本文已影响0人  比尔王BillWang

初衷

被线上BUG折磨的死去活来,自己做事有不细心,紧急修复的问题不是漏了这个就是多了那个。看到微信开源了TInker(源自DOTA2 地精修补匠),并且项目也在使用Bugly,所以就试着用一下,挺顺利且达到了想要的效果。写文档记录学习经历,以及整理使用方法。

对比

暂时只了解了阿里百川的HotFix和微信的Tinker。

HotFix更适用于线上的紧急BUG,因为它不需要重启应用就能够生效,缺点是不能新加类或资源。

Tinker则功能更为强大,功能强大的背后就意味着性能上的占用。Tinker基本可以完成小功能的发布,但是对手机配置就要求高一些,测试的手机只有50M左右就无法修复了,APK本身12M。

现在发现应用宝上必须使用加固工具,然而一旦使用了加固工具,tinker就无法工作了。

Tinker

与Bugly搭配后不再需要APP开发者自己实现后台,并且还可以选择下发规则,比如开发设备、系统版本,还支持补丁回滚。

正文

没怎么写过文章,所以废话还挺多,请见谅。

基准包:正常版本的APK包。

补丁包:修复基准包的BUG。

打基准包的步骤:

1 修改tinker-support.gradle文件中的tinkerId字段

2 在android studio中找到Gradle窗口,一般在右侧

3 等编译完成后,在app\build\bakApk\中找到对应时间的APK包,这个就是基准包了

打补丁包的步骤:

1 修改BUG

2 修改

3 修改旧APK文件夹名称

4 修改这几处文件与左侧一致,tinkerId 修改后缀为patch与基准包区别开

5  在gradle中选取红色的双击编译

6 登录bugly 选择发布新版补丁

7 选择红框中的补丁文件

8 如果基准包未进行联网上报,就会出现右侧的红色提示。

上传完后根据情况选择开发设备、全景设备、自定义

9 回滚补丁后会回滚之前已发布的补丁,并把安装过的程序还原到旧的状态。

疑问验证

1 是否支持打了补丁后继续打补丁?

支持、新的补丁也要用基准包的tinkerid。

2 看到阿里百川好像说可以兼容加固(使用加固前的基准包打补丁)tinker是否可以?

不行,

3 是否可以修改版本号?

不能

待考证的问题

是否必须保存原来的APK包才能对其进行补丁,(应该不用,但是还是要确认下)。

是否支持无线补丁循环?(以及无线循环的补丁,回滚问题)。

参考文档

Bugly官方文档

上一篇下一篇

猜你喜欢

热点阅读