插件化

加载插件中的类

1、创建插件的DexClassLoader类加载器,通过反射获取插件的dexElements
2、获取宿主pathClassLoader类加载器,然后通过反射获取宿主的dexElements的值
3、合并宿主dexElements与插件的dexElements,生成新的Element[]
4、通过反射给新的element[]复制给宿主的dexElements

加载插件中的资源

1、创建AssetManager对象,调用addAssetPath方法,将插件apk的路径作为参数传入
2、将第一步创建的AssetManager对象作为参数,创建一个新的Resources对象,并返回给插件使用
3、重写getResoures方法

跳转插件中的Activity

1、宿主中创建ProxyActivity extends Activity,在清单文件中注册
2、Activity启动时,检测之前替换测ProxyActivity,检测完毕之后换回插件Activity

插件化.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容