1.1 DynamicLoadApk Activity相關(guān)框架
-
DLPluginManager
:插件管理模塊过咬,負(fù)責(zé)插件的加載、管理以及啟動(dòng)插件組件偶惠; -
DLPlugin
:定義Activity
的生命周期接口,是DLPluginActivity
在DLProxyImpl
的引用接口辽幌; -
DLProxyImpl
:負(fù)責(zé)綁定DLPluginActivity
DLProxyActivity
-
DLProxyActivity
:是DLPluginActivity
運(yùn)行的容器,需要在AndroidManifest.xml
注冊(cè);
1.2 插件Activity加載流程
1.3 加載插件PackageInfo Resource
-
PackageInfo
由PackageMS
的接口getPackageArchiveInfo
解析得到; - 通過(guò)反射
AssetManager
的addAssetPath
方法傳入插件activity
的路徑得到插件的AssetManager
怠堪,然后通過(guò)AssetManager
創(chuàng)建插件的Resources
對(duì)象 -
DexClassLoader
加載class
-
so
拷貝到宿主的NativeLib
目錄下
1.4 DLProxyActivity DLPluginActivity相互綁定
DLProxyActivity
有AMS
啟動(dòng)管理揽乱,onCreate
階段,相互綁定DLProxyActivity
粟矿、DLPluginActivity
凰棉;
DLPluginActivity
需要DLProxyActivity
所在的環(huán)境;
DLProxyActivity
代理執(zhí)行DLPluginActivity
業(yè)務(wù)陌粹;