Android熱補(bǔ)丁方案對(duì)比

補(bǔ)丁方案選定

當(dāng)前市面的熱補(bǔ)丁方案有很多,其中比較出名的有阿里的AndFix轮蜕、美團(tuán)的Robust以及QZone的超級(jí)補(bǔ)丁方案

Tinker

AndFix

阿里百川HotFix

QZone

不同角度的分析

阿里百川角度分析


Tinker 角度分析

Tinker -- 微信Android熱補(bǔ)丁方案

Tinker是什么

Tinker是微信官方的Android熱補(bǔ)丁解決方案蜜宪,它支持動(dòng)態(tài)下發(fā)代碼圃验、So庫(kù)以及資源澳窑,讓應(yīng)用能夠在不需要重新安裝的情況下實(shí)現(xiàn)更新供常。當(dāng)然栈暇,你也可以使用Tinker來更新你的插件源祈。

它主要包括以下幾個(gè)部分:

gradle編譯插件:tinker-patch-gradle-plugin

核心sdk庫(kù):tinker-android-lib

非gradle編譯用戶的命令行版本:tinker-patch-cli.jar

為什么使用Tinker

當(dāng)前市面的熱補(bǔ)丁方案有很多煎源,其中比較出名的有阿里的AndFix、美團(tuán)的Robust以及QZone的超級(jí)補(bǔ)丁方案新博。但它們都存在無法解決的問題薪夕。

總的來說:

AndFix作為native解決方案,首先面臨的是穩(wěn)定性與兼容性問題赫悄,更重要的是它無法實(shí)現(xiàn)類替換原献,它是需要大量額外的開發(fā)成本的馏慨;

Robust兼容性與成功率較高,但是它與AndFix一樣姑隅,無法新增變量與類只能用做的bugFix方案写隶;

Qzone方案可以做到發(fā)布產(chǎn)品功能,但是它主要問題是插樁帶來Dalvik的性能問題讲仰,以及為了解決Art下內(nèi)存地址問題而導(dǎo)致補(bǔ)丁包急速增大的慕趴。

特別是在Android N之后,由于混合編譯的inline策略修改冕房,對(duì)于市面上的各種方案都不太容易解決毫捣。而Tinker熱補(bǔ)丁方案不僅支持類饶辙、So以及資源的替換,它還是2.X-7.X的全平臺(tái)支持。利用Tinker我們不僅可以用做bugfix,甚至可以替代功能的發(fā)布。Tinker已運(yùn)行在微信的數(shù)億Android設(shè)備上惑艇,那么為什么你不使用Tinker呢

Tinker的已知問題


由于原理與系統(tǒng)限制恭取,Tinker有以下已知問題:

Tinker不支持修改AndroidManifest.xml耗跛,Tinker不支持新增四大組件;

由于Google Play的開發(fā)者條款限制,不建議在GP渠道動(dòng)態(tài)更新代碼;

在Android N上檀葛,補(bǔ)丁對(duì)應(yīng)用啟動(dòng)時(shí)間有輕微的影響润讥;

不支持部分三星android-21機(jī)型,加載補(bǔ)丁時(shí)會(huì)主動(dòng)拋出"TinkerRuntimeException:checkDexInstall failed";

tinker的一般模式并不支持加固变隔,需要使用usePreGeneratedPatchDex模式鲜棠,即提前生成補(bǔ)丁模式柑爸。某些加固工具可能會(huì)將非exported的四大組件類名替換馅而,這些類將無法修改偎血。對(duì)于Android N之后的設(shè)備,本模式可能會(huì)因?yàn)閮?nèi)聯(lián)而出現(xiàn)問題,建議過濾N之后的設(shè)備;

對(duì)于資源替換,不支持修改remoteView。例如transition動(dòng)畫,notification icon以及桌面圖標(biāo)春霍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炼蛤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子次舌,更是在濱河造成了極大的恐慌逐沙,老刑警劉巖徘郭,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件途样,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡条辟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耘擂,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵濒析,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我馒索,道長(zhǎng)绰上,這世上最難降的妖魔是什么蜈块? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮请毛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己碰酝,他們只是感情好袭厂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布墨吓。 她就那樣靜靜地躺著,像睡著了一般纹磺。 火紅的嫁衣襯著肌膚如雪帖烘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天橄杨,我揣著相機(jī)與錄音秘症,去河邊找鬼。 笑死式矫,一個(gè)胖子當(dāng)著我的面吹牛乡摹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播采转,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼聪廉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了氏义?” 一聲冷哼從身側(cè)響起锄列,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惯悠,沒想到半個(gè)月后邻邮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡克婶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年筒严,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片情萤。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸭蛙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出筋岛,到底是詐尸還是另有隱情娶视,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布睁宰,位于F島的核電站肪获,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柒傻。R本人自食惡果不足惜孝赫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望红符。 院中可真熱鬧青柄,春花似錦伐债、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至喇喉,卻和暖如春祖今,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拣技。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耍目,地道東北人膏斤。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像邪驮,于是被迫代替她去往敵國(guó)和親莫辨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • Tinker 官方使用文檔 本文根據(jù)官網(wǎng)文檔進(jìn)行了一次初步使用毅访,從APP的構(gòu)建到補(bǔ)丁發(fā)布完整地介紹了Tinker沮榜,...
    handsomeslow閱讀 3,025評(píng)論 14 8
  • 開發(fā)背景 一、正常開發(fā)流程 從流程來看喻粹,傳統(tǒng)的開發(fā)流程存在很多弊端: 重新發(fā)布版本代價(jià)太大 用戶下載安裝成本太高 ...
    丶金陵小霸王c閱讀 1,795評(píng)論 0 0
  • Android熱修復(fù)框架的對(duì)比(最終選擇微信Tinker) 總結(jié)對(duì)比摘自Tinker官方Wiki AndFix作為...
    滌生_Woo閱讀 16,250評(píng)論 40 85
  • 《習(xí)慣力》 日常做事常用的錯(cuò)誤方式及正確方法 1蟆融、時(shí)常只關(guān)注評(píng)估事件、找出問題守呜、制定方案型酥,然后直接執(zhí)行。往往忽視了...
    弘毅某閱讀 109評(píng)論 0 2