-
合并宿主和插件的ClassLoader
需要注意的是,插件中的类不可以和宿主重复 -
合并插件和宿主的资源
重设插件资源的packageId,将插件资源和宿主资源合并 -
去除插件包对宿主的引用
构建时通过Gradle插件去除插件对宿主的代码以及资源的引用
-
Activity
采用宿主manifest中占坑的方式来绕过系统校验,然后再加载真正的activity; -
Service
动态代理AMS,拦截service相关的请求,将其中转给Service Runtime去处理,Service Runtime会接管系统的所有操作; -
Receiver
将插件中静态注册的receiver重新注册一遍; -
ContentProvider
动态代理IContentProvider,拦截provider相关的请求,将其中转给Provider Runtime去处理,Provider Runtime会接管系统的所有操作。
网友评论