【原文地址 點擊打開鏈接】(文章最後一部分內容)
插件化框架:
說到未來,也不得不提去年出來的ReactNative,RN比插件化更輕量級,越來越多人選擇了RN,或許會代替插件化,雖然還有很多缺點,比如說沒網的時候
熱修復與插件化的對比
共同原理:
都使用ClassLoader來實現的加載的新的功能類,都可以使用PathClassLoader與DexClassLoader
不同的是:
熱修復因爲是爲了修復Bug的,所以要將新的同名類替代同名的Bug類,要搶先加載新的類而不是Bug類,所以多做兩件事:在原先的app打包的時候,阻止相關類去打上CLASS_ISPREVERIFIED標誌,還有在熱修復時動態改變BaseDexClassLoader對象間接引用的dexElements,這樣才能搶先代替Bug類,完成系統不加載舊的Bug類
而插件化只是增肌新的功能類或者是資源文件,所以不涉及搶先加載舊的類這樣的使命,就避過了阻止相關類去打上CLASS_ISPREVERIFIED標誌和還有在熱修復時動態改變BaseDexClassLoader對象間接引用的dexElements
所以插件化比熱修復簡單,熱修復是在插件化的基礎上在進行替舊的Bug類