上周在团队内部做了一次技术分享,关于 shadow 核心技术原理,下面是这次分享的内容:
我这里也提供了 pdf 的百度云地址,微信扫一扫就好~~
原理总览
工程结构
接口动态化原理
插件包的组成
宿主如何启动插件 Activity
PPS 的作用
插件独立进程的好处
同名 View 问题和解决方案
传统解决方案
Factory 注入
com.tencent.shadow.core.runtime.ShadowLayoutInflater/InnerInflater
com.tencent.shadow.core.runtime.ShadowFactory2
ShadowFactory2 ShadowLayoutInflater
LayoutInflater
LayoutInflater 的 Merge
插件 PluginClassLoader 浅析
插件包名和宿主包名
插件包的资源
ShadowContext 代理
ShadowActivity、ShadowApplication 的父类都是 ShadowContext
宿主如何启动插件 Service
宿主如何启动和访问插件 provider
宿主如何启动和访问插件 receiver
Gradle Plugin 简析-配置阶段
Gradle Plugin 简析-Task
Gradle Plugin 简析- Transformer
简单的 SpecificTransform
复杂的 SpecificTransform
ContentProviderTransform
DialogSupportTransform
LayoutInflaterTransform
PackageManagerTransform
参考文献
Shadow 官网https://github.com/Tencent/Shadow
Shadow 作者本人的博客: https://juejin.cn/user/536217405890903