一、爲什麼我們要插件話?
1. Dalvik虛擬機有方法數限制:Dex 64k method size limit / LinearAlloc exceeded 5MB capacity, App規模變大時會遇到這個問題。(這是由於虛擬機自己的限制)
2. 模塊解耦
3. 動態升級
4. 按需下載
二、概念
1. 插件化-指將一個程序劃分爲不同的部分,比如App皮膚樣式2. 組件化-指通用及複用性較高的構件,比如圖片緩存可以看成一個組件被多個 App 共用
3. 動態加載
三、技術點
-Android官方解決方案:multidex support library
2. 插件資源訪問
-通過反射,通過調用AssetManager中的addAssetPath方法
3. 插件Activity生命週期
-代理Activity
四、技術原理
1. 隔離問題
2. Android ClassLoader
-dalvik.system.DexClassLoader
-dalvik.system.PathClassLoader
五、開源方案
1. DynamicLoadApk2. AndroidDynamicLoader
3. PluginManager
4. DroidPlugin