热修复-热门框架对比

一、什么是热修复?

热修复:让应用能够在无需重新安装的情况实现更新,帮助应用快速建立动态修复能力。其实就是打补丁包,像我们玩王者荣耀老是需要更新个几十M的文件,其实很多就是补丁包。也就是应用上线后出现bug,不用再发布新的版本,而是使用补丁包修复,在用户无感知的情况下修复bug.

二、修复哪些东西?

image.png

三、热修复开发流程

上线版本--用户安装--发现bug--紧急修复--打出补丁,推送给用户--自动拉取补丁修复

而热修复的开发流程显得更加灵活,优势很多:

无需重新发版,实时高效热修复
用户无感知修复,无需下载新的应用,代价小
修复成功率高,把损失降到最低

四、各种热修复框架比较

1.阿里Andfix

1)基本原理

Andfix 采用的方法是,在已经加载了的类中直接在 native 层替换掉原有方法,是在原来类的基础上进行修改的。其核心在于 replaceMethod 函数,所以只支持方法替换,对于方法的增删,资源更新,so 文件更新及类和属性的替换等都是不支持的。偏 native 层。

2)实现思路

在补丁包里面有个修复指定bug的类和方法,通过反射得到这个方法就是等下要替换的新的方法。然后根据注解得到全类名在找到原来bug中的指定类的指定方法,用新的method替换旧的method。在native层通过新类的属性去替换旧类的属性。

image.png

3)优点

立即生效,消耗低;
补丁包较小。

4)缺点

仅支持方法替换;
兼容性不佳,对部分机型暂不支持。

2.美团Robust
1)基本原理

Robust 插件对每个产品代码的每个函数都在编译打包阶段自动的插入了一段代码。通过判断 if(changeQuickRedirect != null) 来确定是否进行热修复,当 changeQuickRedirect 不为 null 时,调用 patch.dex 中同名类的同名方法达到 hotfix 的目的。

image.png

2)实现思路

-实现ChangeQuickRedirect


image.png

-调用


image.png

3)优点

兼容性高,开发透明;
实时生效。

4)缺点

会增大方法数,影响运行效率;

暂不支持 so 文件和资源的替换。

3.腾讯Tinker

1)工具使用

bsdiff可以得到两个不同文件中的不同信息,旧文件+新文件=差分文件
bspatch:旧文件+差分文件=新文件

2)基本原理


image.png
image.png

3)优点

补丁包较小,消耗较小;
开发透明,文档丰富。

4)缺点

占用 ROM 较大;
需要重启才能生效。

4.QZone

其实就是Thinker的旧版,Thinker是对QZone的优化

下文将实战热修复腾讯Thinker

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容