您當前的位置:首頁 > 體育

Android-熱修復技術框架如何選擇?記錄一波...

作者:由 MonkeyLei 發表于 體育時間:2019-11-03

貼出一堆網上看的記錄:

目前主流的熱修復技術框架

阿里系的: Andfix(Alibaba - start:6。6k 3、4年未更新了)、Hotfix(3、4年未更新了)、Sophix(移動熱修復_App熱修復_Android熱修復_實時修復線上Bug_熱修復 - 阿里雲 - 沒開源)

騰訊系的:QQ空間超級補丁技術、Qfix(熱度不高)、Tinker(微信 Tencent/tinker - 持續更新 start: 14。3k)

美團系的:Robust (Meituan-Dianping/Robust - start:3。4k 有更新 - 可以考慮拿來做方法級別修復)

餓了麼的:Amigo (eleme/Amigo - start:1。3k 2,3年未更)

關於熱修復的技術積澱

最開始 ,是手淘基於Xposed進行了改進,產生了針對Android Dalvik虛擬機器執行時的Java method Hook技術——Dexposed。但是這個方案由於對底層Dalvik結構過於依賴,最終無法相容Android5。0以後

後來支付寶提出了新的熱修復方案Andfix。Andfix同樣是一種底層結構替換的方案,也達到了執行時生效及時修復的效果,阿里後來對Andfix改進,對相關業務解耦後,推出了阿里百川Hotfix方案,此時的修復已經非常的不錯,對程式碼修復需求都可以解決,而且全版本相容,但是問題在於Anfix本身有侷限,它只提供程式碼層面的修復,對於資源和so庫的修復都還未能實現

最終在2017年Sophix的橫空出世,打破了各家熱修復技術紛爭的局面。在程式碼修復,資源修復,so修復的方面,以及方案的安全性,易用性放慢,sophix都做到了業界領先

透過類載入機制實現

優點:適用性強、修復範圍廣、限制少

缺點:屬於熱修復中的冷修復、需要重啟App

透過底層替換方法實現

優點:時效好、不需重啟,即使生效

缺點:受限制較多(需要修改虛擬機器欄位,如果手機廠商修改了虛擬機器……。)。

-------我覺得當前的選擇-------

如果

只是簡單的修復方法

,選擇美團的Meituan-Dianping/Robust,小公司小專案應該可以了,也還是在更新中。像阿里之前的修復方案不建議選擇了,基本三四年沒維護了。

如果是還需要

針對so,資源

等,可以考慮

微信的

Tencent/tinker。

也可以採用阿里的Sophix,不過收費,有免費閥值,這個如果專案沒啥這種硬性需求,感覺沒必要。 畢竟android這種一年更新多次,不會怎麼影響使用者,關鍵是要保證產品品質和使用者體驗才是關鍵! 所以我打算快速試下Robust和tinker。。。。。其他的都可以深入瞭解學習!

Next, Let‘s do it!

來自如下網友分享:

Android熱修復技術,你會怎麼選?

Android 熱修復介紹之程式碼修復

標簽: 修復  阿里  Andfix  start  Android