插件化:将一个应用按照插件的方式进行改造的过程就叫做插件化。
插件化框架:VirtualApk等
Activity插件化
1.Hook IActivityManager
使用占坑Activity通过AMS验证,还原插件Activity。
2.Hook Instrumentation
同上,不同在于Hook对象不一样。
Service插件化
代理分发:用代理Service启动插件Service
ContentProvider插件化
使用代理ContentProvider分发对插件Activity的请求。
BroadcastReceiver的插件化
静态注册转换为动态注册。
资源的插件化
- 合并资源方案
- 构建插件资源方案
依赖AssetManager
so的插件化
将so插件插入到NativeLibraryElement数组中,并且将存储so插件的文件添加到nativeLibraryDirectories集合中。
插件的加载机制
- Hook ClassLoader
- 委托给系统的ClassLoader