章魚熱修復選型

熱修復方案選擇

市面上出現過的熱修復方案很多,較爲熱門的有QQ空間方案的Nuwa、微信的Tinker、阿里的Andfix、360的RePlugin、美團的Robust。

先來看一下這些項目的現狀:

  • Nuwa:上次更新日期爲2015年12月。
  • Tinker:騰訊主推,依然保持活躍。
  • Andfix:半年未更新,阿里雲開始推Sophix(閉源收費)。
  • RePlugin:360主推,社區活躍。
  • Robust:美團新寵,活躍中。

Nuwa幾乎已停止維護,Andfix也即將被同門Sophix取代,阿里雲官網貼出的對比圖。


阿里主推的Sophix與自家產品對比

因此,Nuwa、Andfix將不納入我們的考慮範圍,Sophix加入對比隊列。

那麼,我們需要在 Tinker、RePlugin、Robust、Sophix中選出一個最合適的。挑取幾個比較重要的方面,對比如下:

Tinker RePlugin Robust Sophix 意義
So替換 yes no yes 第三方sdk更新
資源替換 yes no yes 涉及到圖片增改的更新
gradle支持 yes no yes 第三方庫更新,版本升級
即時生效 no yes 特定情況支持 無需重啓App即可修復bug
多渠道支持 支持 支持 支持 是否能應付章魚多個渠道
大的第三方後臺 TinkerPatch或Bugly或自搭 自搭 阿里雲 免去自搭後臺的煩惱
穩定性 服務微信數億用戶 美團
Android版本支持 2.X-8.X 2.X-8.X 2.X-8.X 能否支持所有章魚用戶
文檔 豐富 完善中 豐富 豐富的文檔易於排查問題
當前版本 1.9.1 0.4.82 HotFix 3.2.2 Api是否會頻繁改動,相關參見版本號的文化
是否開源 yes 16年9月開源,已收穫12k Star yes 17年6月開源,已收穫4.6k Star yes 17年3月開源,已收穫2.7k Star no 17年12月發佈,前身爲HotFix 技術開源一定程度上能吸引開發者&減少bug,使用者可以知其然且知其所以然
費用 Bugly提供免費後臺或TinkerPatch提供CDN付費後臺或自搭 自搭後臺的管理費用 阿里雲提供付費服務 額外支出與服務享受
其他優勢 章魚已接入同門MTA,Bugly 既具備Tinker的強大功能,也具備Robust場景下的即時生效

比較發現,Robust還處於初期且沒有大的第三方後臺支持,因此被出局。

Sophix半年前改造自HotFix 3.0,尚未經過時間的考驗,且未開源,這可能在我們碰到怪異問題時無法定位(因爲閉源,所以很難知道問題出在哪裏),因此也被出局。

再來看看Tinker,16年9月作爲Tencent在GitHub正式公開的第一個項目,功能強大、穩定,且有大的第三方後臺支持,無論是文檔還是源碼,都可以輕鬆獲取,這自然成爲我們的首選。

熱修復後臺選擇

選定了Tinker,我們還需要一個後臺來下發補丁包。有三種選擇:

  1. 自己搭建補丁後臺;
  2. Bugly免費後臺;
  3. TinkerPatch CDN付費後臺。

三者孰優孰劣?我列了個表單進行比較。

自搭後臺 Bugly TinkerPatch
灰度測試 yes yes yes
條件下發 可以做到非常精準 粗略 可以細化到id
費用 人力與帶寬 免費 約 萬日活5000/年
費時 接入很快 接入較快
維護成本
管理頁面 自搭 Bugly TinkerPatch

可以看到,
自搭後臺功能最強,但成本高;
Bugly免費但條件下發較爲粗略;
TinkerPatch收費但具有更細化的條件下發。

考慮到章魚現階段接入熱修復主要用於修復線上bug,因此TinkerPatch的條件下發相較Bugly並不算優勢,這樣一來,Bugly的免費與接入成本(章魚已經集成了Bugly),最終選定Bugly-Tinker作爲章魚的熱修復工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章