简介
A plugin is a way for a third party to extend the functionality of an application. A plugin implements extension points declared by application or other plugins. Also a plugin can define extension points.
原理
原理图
原理图
整体接口图
整体接口图
流程
注解处理器
注解处理器(Annotation Processor)是javac内置的一个用于编译时扫描和处理注解(Annotation)的工具。简单的说,在源代码编译阶段,通过注解处理器,我们可以获取源文件内注解(Annotation)相关内容。
ExtensionAnnotationProcessor注解处理器
注解处理器配置
生成extensions.idx
在打plugin包的时候,也会在插件jar包中生成extensions.idex文件,如下图所示:
plugin解压之后
plugin打包的时候也会有extensions.idx文件
loadPlugin流程
loadPlugin流程
startPlugin流程
startPlugin流程
getExtension获取扩展点
getExtension获取对应的扩展点实现