创建于[十一月 27, 2018]
1.热修复介绍
项目在上线之后,都难免会有各种问题,毕竟就算再完善的开发测试流程也无法保证不会将 Bug 带到线上,特别是新 app 刚上线,一个 bug 不只是影响到几个几十个用户,一些创业性 app 的崩溃或者 bug 可能直接导致用户卸载和永不使用,而依靠发版去修复问题,成本太高了。
我们来看下常规发布流程:

存在的问题:
1.重新发版,需要重新上架审核,耗时费力
2.需要重新下载安装,用户体验差
3.Bug修复不及时,可能流失用户
然后看下热更新流程:

可见,热更新能够以更低的成本,更灵活的方式应对Bug修复。
·目前****市面****上主流的热修复框架

综合比较,目前推荐Tinker、Robust。下章具体介绍腾讯bugly(基于Tinker)和美团Robust的使用。
Tinker官方介绍:<u>http://www.tinkerpatch.com/Docs/intro</u>
Tinker Wiki:<u>https://github.com/Tencent/tinker/wiki</u>
2.使用与案例
·Bugly
集成文档地址:https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170815114059
** · 关键点:**
** 1.集成完毕后需要修改bug发布补丁时。**
1)填写基准包文件夹名(图片中乱码为文字编码问题,各位看官不用在意)

2)修改thinkerId,默认基准包为base-1.0.1,补丁包名建议修改path-1.0.1

2.用户安装时用的是基准包里的apk

3.生成补丁包方式以及文件目录

4.上传补丁包,开始下发。应用重启。ending.
需要注意的地方:
1.生成补丁包后,修改了其他内容,原先补丁配置不修改的情况下继续发布补丁包,新的补丁包会生效。本地安装包重新安装时也会生效。需要等待一段时间。
同时下发两个补丁包,以最新下发补丁包为准。
2.关于tinkerId命名

经试验这种命名补丁不会生效。
3.进程需杀死重新启动补丁才会生效。
4.目前bugly服务器不收费,支持市面主流加固(360,应用宝,爱加固等)。
实战篇之bugly
一番对比之后我们选择了腾讯的bugly(前tinker)作为热修复框架,因为他有自己的补丁管理后台,不需要我们操心服务端。
此处记录下踩过的坑、以及待填的坑。
坑1.发版时基准包要自行保存。
不要想着到时候回退代码至上一版本重新打基准包,任何一处代码乃至缓存,与上一版本不一致都不可能打出完全相同的基准包,那么也就没有办法依据基准包生成有效的补丁包。
坑2.传统的打包方式抹去了渠道信息,需要借鉴新的打包方式。
此处推荐美团的walle多渠道打包+360加固,但目前还未来得及实践。先留下网址:https://www.jianshu.com/p/be1bbb070322,待日后有机会再~~
·Robust
集成文档地址:http://blog.csdn.net/snailbaby_soko/article/details/69524380
Robust的集成相比Bugly要简单一点,大家就先去看文档吧。:)