插件化原理

461 阅读1分钟

插件化:将一个应用按照插件的方式进行改造的过程就叫做插件化。

插件化框架: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