Eclipse RCP 插件的 "starts" 和 "activates" 之间有区别吗?

Is there a difference between "starts" and "activates" for Eclipse RCP plugin?

创建插件时,清单文件中有一个选项 "Activate this plug-in when one of its classes is loaded":

此外,在配置产品时,还有指定插件启动级别的选项:

"starting"的概念与"activating"相同还是不同。如果它们不同,那是怎么回事?

Start Levels 用于控制 Eclipse 自身启动时插件的启动顺序。这是必要的,以确保某些服务在需要时可用。下图显示了默认的启动级别。级别 1 org.eclipse.equinox.simpleconfigurator 是加载大多数其他插件的插件 - 所以它需要先启动!

'Activate this plug-in when one of its classes is loaded' 是一个选项,用于控制何时调用插件 Activator class(如果它有一个)。如果指定了激活器,直到需要使用插件中的其他 classes 之一时才会调用激活器。如果未指定,则仅当插件由 'Auto-Start' 在启动级别或显式 OSGi 启动调用启动时才会调用 Activator。

请注意,许多插件根本不需要激活器。