前言
- 插件化和熱修復(fù)不是同一個概念蚁鳖,兩者出發(fā)點不同
- 從技術(shù)角度來講,都是從系統(tǒng)加載器角度著手赁炎,無論采用hook,代理或其他底層實現(xiàn)醉箕,都是"欺騙"Android系統(tǒng)讓宿主加載或運行插件(補(bǔ)丁)的內(nèi)容
- 插件化:目的是把需要實現(xiàn)的模塊或功能當(dāng)做一個獨立的提取出來,減少宿主的規(guī)模徙垫,當(dāng)需要使用到相應(yīng)的功能時再去加載相應(yīng)的模塊
- 熱修復(fù):往往是從修復(fù)bug的角度出發(fā)讥裤,強(qiáng)調(diào)的是在不需要二次安裝應(yīng)用的前提下修復(fù)已知的bug(涉及關(guān)鍵詞:Hook技術(shù)、動態(tài)代理等)
目前主流熱修復(fù)框架(熱更新一般來說也是指熱修復(fù))
- 阿里 AndFix
- 阿里 Sophix (收費)
- 微信 Tinker
- 餓了么 Amigo (易用性)
- 美團(tuán) Robust
插件化方案 (涉及動態(tài)代理姻报,ClassLoader己英,以及另一個apk資源的加載)
- 360的DroidPlugin (推薦)
- Small
- DynamicAPK(攜程)
除了上面的2個概念,還有個增量更新的技術(shù)
- APK增量更新是很多大廠APP采用的技術(shù)
- bsdiff庫生成補(bǔ)丁文件方式下載跟舊版本APK合成生成新版APK的原理(ligbspatch.so)
參考鏈接: