Android插件化和熱修復的區別和聯繫

【原文地址 點擊打開鏈接】(文章最後一部分內容

插件化框架:


此處輸入圖片的描述

插件化發展歷史:博客一博客二

說到未來,也不得不提去年出來的ReactNative,RN比插件化更輕量級,越來越多人選擇了RN,或許會代替插件化,雖然還有很多缺點,比如說沒網的時候

熱修復與插件化的對比

共同原理:
都使用ClassLoader來實現的加載的新的功能類,都可以使用PathClassLoader與DexClassLoader
不同的是:
  熱修復因爲是爲了修復Bug的,所以要將新的同名類替代同名的Bug類,要搶先加載新的類而不是Bug類,所以多做兩件事:在原先的app打包的時候,阻止相關類去打上CLASS_ISPREVERIFIED標誌,還有在熱修復時動態改變BaseDexClassLoader對象間接引用的dexElements,這樣才能搶先代替Bug類,完成系統不加載舊的Bug類
  而插件化只是增肌新的功能類或者是資源文件,所以不涉及搶先加載舊的類這樣的使命,就避過了阻止相關類去打上CLASS_ISPREVERIFIED標誌和還有在熱修復時動態改變BaseDexClassLoader對象間接引用的dexElements

  所以插件化比熱修復簡單,熱修復是在插件化的基礎上在進行替舊的Bug類



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