Eclipse插件开发培训-资源管理进阶.PPT

上传人:天*** 文档编号:3805480 上传时间:2019-07-19 格式:PPT 页数:22 大小:484KB
下载 相关 举报
Eclipse插件开发培训-资源管理进阶.PPT_第1页
第1页 / 共22页
Eclipse插件开发培训-资源管理进阶.PPT_第2页
第2页 / 共22页
Eclipse插件开发培训-资源管理进阶.PPT_第3页
第3页 / 共22页
Eclipse插件开发培训-资源管理进阶.PPT_第4页
第4页 / 共22页
Eclipse插件开发培训-资源管理进阶.PPT_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、Eclipse插件开发培训资源管理(进阶),朱兴 2008-07-26MSN: zhu_,Eclipse平台(开发者视角),JVM,Equinox(OSGI Extension Point),Runtime,Resource,Workbench,Eclipse资源管理、Java io (nio)、文件系统,A操作系统文件系统,B操作系统文件系统,Java IO/Java NIO,Eclipse 工作区资源管理变化跟踪资源描述状态持久化机制,Eclipse资源管理任务和作用,Eclipse资源管理的主要任务Change tracking :变化跟踪Resource metadata:资源描述信息

2、State management:状态持久化Full save:全面保存(工作区启动或者退出)Snapshot:只保存关键性的需要复杂计算的信息Eclipse资源管理的重大作用在Java IO基础之上提供了完善的状态管理、变化跟踪为进一步建立特定运行时模型提供了重要基础JDT Element Model,Eclipse 2.X中的资源管理,Eclipse 3.X中的资源管理,Eclipse Runtime:Job、ISchedulingRule,JobEclipse线程支持ISchedulingRule作用:Job协调,冲突控制要脱离resource management模块理解注意锁定范围,

3、参照synchronized关键字的用法,Eclipse资源管理: Batching操作,IWorkspaceRunnable 创建IWorkspaceRunnable实现执行runnableIWorkspace.run(IWorkspaceRunnable action, IProgressMonitor monitor)Eclipse 3.0之前执行运行方式,锁住整个工作区IWorkspace.run(IWorkspaceRunnable action, ISchedulingRule rule, int flags, IProgressMonitor monitor)更丰富参数配置,更好

4、性能,协调冲突,Eclipse资源管理: Batching操作,IWorkspaceRunnable优点原则性批量操作,可以简单理解为只发一次事件提高健壮性可以进一步包装,提供丰富的用户交互性IWorkspaceRunnable注意点不要误认为会启动一个新的线程UI操作包装在Display.sync或Display.async中注意和IWorkspaceJob的适用场景区别注意和ISchedulingRule的配合使用,效率,Eclipse资源管理: 后台Batching操作,IWorkspaceJob将一个IWorkspaceRunnable防止于Job中运行默认会启动一个新的后台、异步线程

5、统一可以配置一个ISchedulingRule,Eclipse资源管理:Batching相关装饰接口,IWorkspaceJob将一个IWorkspaceRunnable防止于Job中运行WorkspaceModifyOperation 包装一个IWorkspaceRunnable在UI上下文中运行 IProgressService 一般是执行一个WorkspaceModifyOperation ,提供更多交互,例如取消、进度显示等,Eclipse资源管理变化跟踪机制,Eclipse的资源管理模块中提供了资源变化跟踪机制,允许用户在变化后执行自定义操作,两种机制目的不同,包括:资源变化监听器:

6、后台运行Builder:处理编译,和用户有交互,Eclipse资源管理:资源变化监听器,事件处理核心接口IResourceChangeListenerIResourceDelta(资源变化增量)IResourceDeltaVisitor(增量访问者)注册监听器IWorkspace.addResourceChangeListener移除监听器IWorkspace. removeResourceChangeListener,编写resource change listener注意点,确保Lightweight 和 Fast!不对IResourceDelta做缓存!多个listener之间保持透明,

7、不互相依赖UI操作需要使用Display.sync/async进行封装性能优化点配合IResourceDeltaVisitor,提升过滤效率IResourceDelta.findMember(IPath) ,快速查找特定资源的变化IResourceChangeEvent.findMarkerDeltas ,快速收集Marker,Eclipse资源管理:资源描述,工作区层面(ResourceInfo)Workspace. updateModificationStamp 文件系统层面(FileInfo)FileSystemResourceManager. updateLocalSync,Eclip

8、se资源管理:资源状态同步,同步检查文件级别时间戳的比较目录级别检查较为宽松,因为不同操作系统自身对文件夹时间戳的支持力度不同工程级别检查基本上判断是否可以访问,Eclipse资源管理:资源状态同步,造成资源不同步的主要原因使用了java io或者java nio进行了修改操作用不恰当的接口对ResourceInfo或者FileInfo进行了直接修改注意外部builder(一般不要乱用),Eclipse资源管理:Builder,编译类型(需要扎实理解)auto_build(本质上为increment_build)full_build (本质上为increment_build)clean_bui

9、ldincrement_build编译状态一般由full build建立,increment build更新操作接口IWorkspace.buildIProject.build,Eclipse资源管理:Builder编写注意点,尽量保持较为统一的编译模型建议:尽量保持一致的增量编译逻辑注意和IWorkspaceRunable配合使用注意和其他builder的协调(尤其是JavaBuilder)Builder顺序配置不同文件类型的编译处理,Eclipse资源管理:Builder Listener,用途不同(listener更后台,builder更用户相关)执行顺序不同(listener无序,bu

10、ilder有序)变化增量内容不同:listener delta描述了整个工作区,builder delta描述工程范围(工程上次编译之后的资源变化信息)listener delta中持有marker信息和同步信息,builder delta中没有(主要是性能考虑!)执行上下文和控制上下文builder在固定名称Job中执行,listener在随机线程执行builder(Job)便于控制和协调,listener不便,Eclipse资源管理:持久化,后台机制,本次不做具体讲解,Eclipse资源管理:作业,编写一个功能,每10分钟定时编译工作区中所有工程编写一个Job,编译完成时执行,提示:Job监听Job协调(看看JobManager),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。