外掛程式化開發和熱修復
所以外掛程式化比熱修復簡單,熱修復是在外掛程式化的基礎上在進行替舊的bug類
android元件化和外掛程式化開發
外掛程式化是在[執行時],而元件化是在[編譯時]。換句話說,外掛程式化是基於多 apk 的,而元件化本質上還是只有乙個 apk。
droidplugin
small
virtualapk
replugin
從個人感覺來說,如果工程量不大,又對多程序沒有太多的想法的工程完全可以優先使用small。而如果整個工程量大,以後又可能使用多程序,追求穩定的大型專案還是推薦replugin。
阿里開源的熱修復框架
andfix熱修復框架位址
在android
中有兩個類載入器,分別為pathclassloader
和dexclassloader
pathclassloader
。
系統類和應用類的載入器
dexclassloader:能夠載入未安裝的jar/apk/dex
原理方案
native hook方案,方法替換instant run的熱插拔原理,native層造成的問題就是相容性問題
andfix
qq空間提出的classloader替換類的方案
nuwa, hotfix, rocoofix
instant run的冷插拔原理的dex替換,dexclassloader,吧舊的dex和補丁dex融合形成新的dex,確定需要重啟
tinker
multidex
分包原理
python外掛程式化開發
動態匯入 執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來。sys import sys 等價於import sys 在 xyz.py class a def show self0 print 123 在 主程式模組 if name main mod import xyz cls get...
Python 外掛程式化開發
執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來 import name,globals none,locals none,fromlist level 0 importlib.import module name,package none t8.py classa defshowme ...
Python 外掛程式化開發
1 動態匯入 執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來。2 內建函式 import def import name,globals none,locals none,fromlist level 0 name 模組名 import語句本質上就是呼叫這個函式,但是不鼓勵直接使用它,...