Shadow 原理分析

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

文章作者: Coolqi.Li
文章链接: https://lishuaiqi.top/2022/10/13/shadow-howtowork-all/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Coolqi`s Blog
支付宝打赏
微信打赏