HotFix
簡介:阿里的熱補形入,https://github.com/dodola/HotFix
阿里巴巴無線事業(yè)部最近開源的Android平臺下的無侵入運行期AOP框架Dexposed,該框架基于AOP思想票腰,支持經(jīng)典的AOP使用場景匣屡,可應用于日志記錄封救,性能統(tǒng)計,安全控制捣作,事務處理誉结,異常處理等方面。阿里巴巴的開源熱補框架:http://www.reibang.com/p/14edcb444c51券躁。
- 注意:
- 1.分包的時候有坑
- 2.在兼容性穩(wěn)定性上惩坑, ClassLoader方案很可靠 ,如果需要應用 不重啟就能修復 也拜,而且方法足夠簡單
- 3.Dexposed支持從Android2.3到4.4(除了3.0)的所有dalvid運行時arm架構的設備以舒,穩(wěn)定性已經(jīng)經(jīng)過實踐檢驗。但高版本存在缺陷慢哈。
Nuwa
簡介:能自動生成jar包的熱補框架蔓钟,https://github.com/jasonross/Nuwa
- 已不更新:
- 開發(fā)的時候特別方便,但是由于要自己去維護卵贱,所以不適合短期接入滥沫。
RocooFix
簡介:hotfix和Nuwa的混合版
https://github.com/dodola/RocooFix
-
支持兩種模式:
- 靜態(tài)修復某種情況下需要重啟應用。
- 動態(tài)修復键俱,無需重啟應用即可生效兰绣。
- 新增so修復,beta中
- 支持DalvikVM和ART VM
- 制作補丁更加方便
- 支持
com.android.tools.build:gradle:1.3.0
->com.android.tools.build:gradle:2.1.2
Thinker
簡介:騰訊微信團隊的熱更開源框架编振,https://github.com/Tencent/tinker
- 已知問題:
- 1.不能更新androidmaifest
- 2.部分version21的三星機型不支持
Bugly
簡介:依賴于騰訊的熱更平臺
https://bugly.qq.com/v2/
- 注意:
- 1.接入后有bug分析功能
- 2.能實時發(fā)布熱補
- 3.能面向測試設備發(fā)布熱補(debug和release可以設置)
Reactive-Native
該方案適合bundle替換缀辩,只要遠程提供打包好的bundle,app下載后重新加載即可
巧妙利用AssetManger+dex熱更方式來實現(xiàn)替換資源
http://blog.csdn.net/tuhuolong/article/details/52384417
風險分析
簡介:分析騰訊應用的熱補過程踪央,Andfix臀玄、QZone、微信幾套方案的實現(xiàn)杯瞻,以及它們方案面臨著的問題镐牺。http://www.07net01.com/program/2016/11/1706227.html
若采用插樁導致所有類都非preverify,這導致verify與optimize操作會在加載類時觸發(fā)魁莉。這會有一定的性能損耗睬涧,微信分別采用插樁與不插樁兩種方式做過兩種測試募胃,一是連續(xù)加載700個50行左右的類,一是統(tǒng)計微信整個啟動完成的耗時畦浓。
1.占用Rom體積痹束;這邊大約是你修改Dex數(shù)量的1.5倍(dexopt與dex壓縮成jar)的大小。
2.一個額外的合成過程讶请;雖然我們單獨放在一個進程上處理祷嘶,但是合成時間的長短與內(nèi)存消耗也會影響最終的成功率。
參考表格: