上周在团队内部做了一次技术分享,关于 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