版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Eclipse插件開發(fā)培訓(xùn)-資源管理(進(jìn)階),朱興 2008-07-26MSN: zhu_xing@live.cn,Eclipse平臺(開發(fā)者視角),,JVM,Equinox(OSGI + Extension Point),Runtime,Resource,Workbench,Eclipse資源管理、Java io (nio)、文件系統(tǒng),,A操作系統(tǒng)文件系統(tǒng),B操作系統(tǒng)文件系統(tǒng),Java IO/Java NIO,Eclipse
2、工作區(qū)資源管理變化跟蹤資源描述狀態(tài)持久化機(jī)制,,,,Eclipse資源管理任務(wù)和作用,Eclipse資源管理的主要任務(wù)Change tracking :變化跟蹤Resource metadata:資源描述信息State management:狀態(tài)持久化Full save:全面保存(工作區(qū)啟動或者退出)Snapshot:只保存關(guān)鍵性的需要復(fù)雜計算的信息Eclipse資源管理的重大作用在Java IO基礎(chǔ)之上提供了完善的
3、狀態(tài)管理、變化跟蹤為進(jìn)一步建立特定運(yùn)行時模型提供了重要基礎(chǔ)JDT Element Model…,Eclipse 2.X中的資源管理,Eclipse 3.X中的資源管理,Eclipse Runtime:Job、ISchedulingRule,JobEclipse線程支持ISchedulingRule作用:Job協(xié)調(diào),沖突控制要脫離resource management模塊理解注意鎖定范圍,參照synchronized關(guān)鍵
4、字的用法,Eclipse資源管理: Batching操作,IWorkspaceRunnable 創(chuàng)建IWorkspaceRunnable實現(xiàn)執(zhí)行runnableIWorkspace.run(IWorkspaceRunnable action, IProgressMonitor monitor)Eclipse 3.0之前執(zhí)行運(yùn)行方式,鎖住整個工作區(qū)IWorkspace.run(IWorkspaceRunnable action
5、, ISchedulingRule rule, int flags, IProgressMonitor monitor)更豐富參數(shù)配置,更好性能,協(xié)調(diào)沖突,Eclipse資源管理: Batching操作,IWorkspaceRunnable優(yōu)點(diǎn)原則性批量操作,可以簡單理解為只發(fā)一次事件提高健壯性可以進(jìn)一步包裝,提供豐富的用戶交互性IWorkspaceRunnable注意點(diǎn)不要誤認(rèn)為會啟動一個新的線程UI操作包裝在Disp
6、lay.sync或Display.async中注意和IWorkspaceJob的適用場景區(qū)別注意和ISchedulingRule的配合使用,效率,Eclipse資源管理: 后臺Batching操作,IWorkspaceJob將一個IWorkspaceRunnable防止于Job中運(yùn)行默認(rèn)會啟動一個新的后臺、異步線程統(tǒng)一可以配置一個ISchedulingRule,Eclipse資源管理:Batching相關(guān)裝飾接口,IWorks
7、paceJob將一個IWorkspaceRunnable防止于Job中運(yùn)行WorkspaceModifyOperation 包裝一個IWorkspaceRunnable在UI上下文中運(yùn)行 IProgressService 一般是執(zhí)行一個WorkspaceModifyOperation ,提供更多交互,例如取消、進(jìn)度顯示等,Eclipse資源管理-變化跟蹤機(jī)制,Eclipse的資源管理模塊中提供了資源變化跟蹤機(jī)制,允許用戶在變化
8、后執(zhí)行自定義操作,兩種機(jī)制目的不同,包括:資源變化監(jiān)聽器:后臺運(yùn)行Builder:處理編譯,和用戶有交互,Eclipse資源管理:資源變化監(jiān)聽器,事件處理核心接口IResourceChangeListenerIResourceDelta(資源變化增量)IResourceDeltaVisitor(增量訪問者)注冊監(jiān)聽器IWorkspace.addResourceChangeListener移除監(jiān)聽器IWorkspace.
9、 removeResourceChangeListener,編寫resource change listener注意點(diǎn),確保Lightweight 和 Fast!!!不對IResourceDelta做緩存?。?!多個listener之間保持透明,不互相依賴UI操作需要使用Display.sync/async進(jìn)行封裝性能優(yōu)化點(diǎn)配合IResourceDeltaVisitor,提升過濾效率IResourceDelta.findMem
10、ber(IPath) ,快速查找特定資源的變化IResourceChangeEvent.findMarkerDeltas ,快速收集Marker…,Eclipse資源管理:資源描述,工作區(qū)層面(ResourceInfo)Workspace. updateModificationStamp 文件系統(tǒng)層面(FileInfo)FileSystemResourceManager. updateLocalSync,Eclipse資源管理
11、:資源狀態(tài)-同步,同步檢查文件級別時間戳的比較目錄級別檢查較為寬松,因為不同操作系統(tǒng)自身對文件夾時間戳的支持力度不同工程級別檢查基本上判斷是否可以訪問,Eclipse資源管理:資源狀態(tài)-同步,造成資源不同步的主要原因使用了java io或者java nio進(jìn)行了修改操作用不恰當(dāng)?shù)慕涌趯esourceInfo或者FileInfo進(jìn)行了直接修改注意外部builder(一般不要亂用),Eclipse資源管理:Builder
12、,編譯類型(需要扎實理解)auto_build(本質(zhì)上為increment_build)full_build (本質(zhì)上為increment_build)clean_buildincrement_build編譯狀態(tài)一般由full build建立,increment build更新操作接口IWorkspace.buildIProject.build,Eclipse資源管理:Builder編寫注意點(diǎn),盡量保持較為統(tǒng)一的編譯模
13、型建議:盡量保持一致的增量編譯邏輯注意和IWorkspaceRunable配合使用注意和其他builder的協(xié)調(diào)(尤其是JavaBuilder)Builder順序配置不同文件類型的編譯處理,Eclipse資源管理:Builder ※ Listener,用途不同(listener更后臺,builder更用戶相關(guān))執(zhí)行順序不同(listener無序,builder有序)變化增量內(nèi)容不同:listener delta描述了整個
14、工作區(qū),builder delta描述工程范圍(工程上次編譯之后的資源變化信息)listener delta中持有marker信息和同步信息,builder delta中沒有(主要是性能考慮!?。。﹫?zhí)行上下文和控制上下文builder在固定名稱Job中執(zhí)行,listener在隨機(jī)線程執(zhí)行builder(Job)便于控制和協(xié)調(diào),listener不便,Eclipse資源管理:持久化,后臺機(jī)制,本次不做具體講解,Eclipse資源管理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eclipse插件開發(fā)之tabpropertyview
- eclipse插件開發(fā)之tabpropertyview
- 基于ECLIPSE平臺的OPS插件開發(fā).pdf
- eclipse裝properties預(yù)覽插件
- 哈佛模式人力資源管理-培訓(xùn)開發(fā)
- 基于Eclipse插件的集成開發(fā)環(huán)境擴(kuò)展與改進(jìn).pdf
- Eclipse平臺下Web服務(wù)安全性插件的開發(fā).pdf
- 設(shè)計模式在Eclipse插件開發(fā)中復(fù)合應(yīng)用的研究.pdf
- 培訓(xùn)資源管理規(guī)范
- 人力資源管理之人員培訓(xùn)與開發(fā)
- 人力資源管理之人員培訓(xùn)與開發(fā)
- 自考人力資源管理《培訓(xùn)與開發(fā)》串講筆記
- 人力資源管理培訓(xùn)與開發(fā)(ppt 134頁)
- 企業(yè)人力資源管理師培訓(xùn)與開發(fā)
- 基于Eclipse插件的組件配置系統(tǒng).pdf
- 基于Eclipse平臺的插件擴(kuò)展實現(xiàn).pdf
- 基于通用電子政務(wù)構(gòu)建平臺的Eclipse插件開發(fā).pdf
- 培訓(xùn)管理流程(人力資源管理)
- 芻議人力資源管理培訓(xùn)管理
- 培訓(xùn)專員(人力資源管理)
評論
0/150
提交評論