關於Android熱更新瑣碎記錄

最近比較閒,就接手了一個比較燙手的山芋,熱更新,這個被抄爛的詞。  下面是這段事件我在作技術調研的時候收集的方案,和最終選型的記錄。android

1 ):Andfix(alipay開源出來的一個android熱修補方案)   https://github.com/alibaba/AndFix
缺點:
1 不支持yunos
2 不支持新增class,不能修改文件,不能替換資源。
3 我實驗了幾把也都沒有成功。。。git

2 ):Amigo(餓了麼方案)     https://github.com/eleme/Amigo/blob/master/README_zh.md#amigo
這個方案沒有作深刻的研究,實際使用人數很少。github

ps:其實餓了麼的這個方案我這裏雖然沒有作深刻的研究,可是看做者寫的文檔和代碼能夠看出來,若是是打算自行搭建後端服務來實現的話,我卻是比較推薦該方案。後端

3):Tinker(微信)   https://github.com/Tencent/tinker
缺點:
1 須要修改application,Tinker的實現方案須要徹底隱藏原有的application。修改代碼比較多
2 gradle配置文件比較複雜
優勢:
1 so xml等資源文件都支持
2 差分文件也比較小微信

如何集成tinker寫了個demo 見:https://github.com/hehr/TinkerDemoapp

總結一下:
1.以上三中方案都須要在代碼集成開源方案,代碼改動會相對較大。尤爲以Tinker爲甚。
2.須要自行搭建後端服務。開發成本較高,後期維護的成本也比較高。工具

以上三種方案,我不推薦。測試

在調研這些方案的時候,我發現阿里和騰訊確實會掙錢,也頗有遠見,已經依據原有的方案的基礎上紛紛推出來自家的熱修補平臺,以sdk的方案來集成,服務作成收費的模式。比較稱讚這樣的行爲,君子生財,取之有道。其實想想,對於中小公司來講,其實初衷無非是想讓自家的app擁有熱修補的能力,在用戶不直覺或者很小的成本上去修補突發和意外狀況下的Bug。下面是兩種付費方案:gradle

4):Tinker的升級版本:
http://www.tinkerpatch.com/

我打入到tinker的官方羣,發現該平臺也是剛剛搭建,我試着在平臺註冊了一個帳號,沒有收到確認通郵件,下面是我最終向公司推薦的方案,也是我最終選型定下來的方案。網站

5):Andfix 的升級版本,Hotfix (推薦方案)
http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.90sF4N&treeId=234&articleId=105461&docType=1  (阿里百川Hotfix)

優勢:
1 支持yunos。
2 sdk集成方便,代碼改動很小。
3 文檔清晰,在其官方網站上能夠看到代碼集成,生成差分文件,以及測試工具和後臺操做都有文檔支持。
4 支持多種渠道發佈補丁,支持灰度發佈,全量發佈,支持回滾。
5 支持數據統計。

缺點:
1 據瞭解,目前還不支持資源文件的替換和修改。(他們官方給個人回覆是正在集成,即將支持)
2 須要額外so文件支持。
3 付費,價格尚未對外公佈,須要的能夠找阿里的技術支持聊天。

 

如上,作一個記錄。但願能對後來者有所幫助。由於hotfix的方案文檔都比較清晰,也就不須要在去寫demo之類的貼上去了。

相關文章
相關標籤/搜索