美文网首页
Android DynamicLoadApk代理Activity

Android DynamicLoadApk代理Activity

作者: 晴天12345 | 来源:发表于2017-10-31 20:35 被阅读15次

1.1 DynamicLoadApk Activity相关框架

DynamicLoadApk Activity相关类图
  • DLPluginManager:插件管理模块,负责插件的加载、管理以及启动插件组件;
  • DLPlugin:定义Activity的生命周期接口,是DLPluginActivityDLProxyImpl的引用接口;
  • DLProxyImpl:负责绑定DLPluginActivity DLProxyActivity
  • DLProxyActivity:是DLPluginActivity运行的容器,需要在AndroidManifest.xml注册;

1.2 插件Activity加载流程

插件Activity加载流程

1.3 加载插件PackageInfo Resource

  1. PackageInfoPackageMS的接口getPackageArchiveInfo解析得到;
  2. 通过反射AssetManageraddAssetPath方法传入插件activity的路径得到插件的AssetManager,然后通过AssetManager创建插件的Resources对象
  3. DexClassLoader加载class
  4. so拷贝到宿主的NativeLib目录下

1.4 DLProxyActivity DLPluginActivity相互绑定

DLProxyActivityAMS启动管理,onCreate阶段,相互绑定DLProxyActivityDLPluginActivity
DLPluginActivity需要DLProxyActivity所在的环境;
DLProxyActivity代理执行DLPluginActivity业务;

相关文章

网友评论

      本文标题:Android DynamicLoadApk代理Activity

      本文链接:https://www.haomeiwen.com/subject/tglipxtx.html