eclipse通过插件的依赖关系将不同的插件联系在一起。随着插件规模的越来越多,eclipse运行时消耗的资源也迅速增长。但是,eclipse不能为已安装但是还没有使用的插件耗费资源。因此,eclipse目前采用懒加载模式,当用到该插件时才会加载,没有使用到是不会加载到内存中的。
工作台层次结构
工作台->工作台窗口
工作台窗口又包含菜单栏、工具栏和工作台页面
工作台页面就是透视图
Eclipse的窗口。通常一个工作台会打开一个窗口,但是也可能一个工作台对应多个窗口。
//取得工作台
IWorkbench workbench = PlatformUI.getWorkbench();
//取得工作台窗口
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
//取得工作台页面
IWorkbenchPage page = window.getActivePage();
//取得当前处于活动状态的编辑器窗口
IEditorPart part = page.getActiveEditor();
当eclipse启动时,会遍历plugins文件夹中的目录,扫描每个插件的清单文件,并建立一个内部模型来记录它
所找到的每个插件的信息。这时候插件并未启动,只有调用插件的start方法后,插件才会真正启动。
宿主插件、扩展者插件、回调对象 三者之间的关系。
每个插件都应该有个相应的plugin.xml清单文件与 其相对应,它们在其中声明了该插件的使用扩展和扩展点。elcipse使用插件注册表来管理插件的所有扩展点和扩展信息,因而可以使用如下方法来获得扩展点。
IExtensionRegistry.getExtensionPoint("org.eclipse.ui.actionSet");
1.一个宿主插件可能存在多个扩展点;
2.插件可以扩展它自己定义的扩展点;
3.一个插件可以多次扩展一个扩展点;
插件工程有3个部分组成:
1.源代码部分;
2.插件文件,它是构成完整插件至关重要的部分,主要包含几个部分:插件清单文件(plugin.xml),MANIFEST.MF,build.properties,所依赖的系统库;
3.其他资源文件;
PDE的插件清单编辑器能够统一管理所有的插件文件,即plugin.xml,MANIFEST.MF,build.properties。
<extension>标签定义插件对其他插件的功能控制,具有point属性,表示所引用扩展点的标识。
<extension-point>标签表示该插件定义的扩展点。
<extension
point="org.eclipse.ui.views">
//name表示该视图所属的分类,在视图选择框中以文件夹显示
<category
name="PLUGINDEV"
id="com.plugindev.addressbook">
</category>
<view
//表示视图的名称
name="地址本视图"
icon="icons/sample.gif"
category="com.plugindev.addressbook"
class="com.plugindev.addressbook.views.AddressView"
id="com.plugindev.addressbook.views.AddressView">
</view>
</extension>
插件类继承AbstractUIPlugin,用于管理插件的生命周期,start是插件启动的时候调用,stop是卸载插件的
时候调用。