【Android知识笔记】插件化专题(一)

占位式插件化方案

宿主启动插件 Activity 的流程

实现思路:

  1. 创建一个 DexClassLoader 类加载其用于加载插件包apk中的 Activity

  2. 反射调用 AssetManageraddAssetPath() 将插件包的路径添加,然后通过该AssetManager的实例构造Resource的实例用以加载插件中的布局

  3. 启动插件中的Activity时,先启动宿主中占位的Activity,然后反射创建出目标Activity的实例,为其注入Context对象(占位Activity自身),调用其 onCreate 生命周期方法

【Android知识笔记】插件化专题(一)_第1张图片

其中占位的 Activity 是在宿主的 AndroidManifest.xml 中注册的,而插件中的 Activity 是没有在AndroidManifest.xml中注册的,占位的 Activity 起到一

你可能感兴趣的:(Android知识笔记,android,插件化,ClassLoader,双亲委派,反射,Hook,动态代理)