eclipse插件開(kāi)發(fā)培訓(xùn)-資源管理進(jìn)階_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Eclipse插件開(kāi)發(fā)培訓(xùn)-資源管理(進(jìn)階),朱興 2008-07-26MSN: zhu_xing@live.cn,Eclipse平臺(tái)(開(kāi)發(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ū)啟動(dòng)或者退出)Snapshot:只保存關(guān)鍵性的需要復(fù)雜計(jì)算的信息Eclipse資源管理的重大作用在Java IO基礎(chǔ)之上提供了完善的

3、狀態(tài)管理、變化跟蹤為進(jìn)一步建立特定運(yùn)行時(shí)模型提供了重要基礎(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實(shí)現(xiàn)執(zhí)行runnableIWorkspace.run(IWorkspaceRunnable action, IProgressMonitor monitor)Eclipse 3.0之前執(zhí)行運(yùn)行方式,鎖住整個(gè)工作區(qū)IWorkspace.run(IWorkspaceRunnable action

5、, ISchedulingRule rule, int flags, IProgressMonitor monitor)更豐富參數(shù)配置,更好性能,協(xié)調(diào)沖突,Eclipse資源管理: Batching操作,IWorkspaceRunnable優(yōu)點(diǎn)原則性批量操作,可以簡(jiǎn)單理解為只發(fā)一次事件提高健壯性可以進(jìn)一步包裝,提供豐富的用戶交互性IWorkspaceRunnable注意點(diǎn)不要誤認(rèn)為會(huì)啟動(dòng)一個(gè)新的線程UI操作包裝在Disp

6、lay.sync或Display.async中注意和IWorkspaceJob的適用場(chǎng)景區(qū)別注意和ISchedulingRule的配合使用,效率,Eclipse資源管理: 后臺(tái)Batching操作,IWorkspaceJob將一個(gè)IWorkspaceRunnable防止于Job中運(yùn)行默認(rèn)會(huì)啟動(dòng)一個(gè)新的后臺(tái)、異步線程統(tǒng)一可以配置一個(gè)ISchedulingRule,Eclipse資源管理:Batching相關(guān)裝飾接口,IWorks

7、paceJob將一個(gè)IWorkspaceRunnable防止于Job中運(yùn)行WorkspaceModifyOperation 包裝一個(gè)IWorkspaceRunnable在UI上下文中運(yùn)行 IProgressService 一般是執(zhí)行一個(gè)WorkspaceModifyOperation ,提供更多交互,例如取消、進(jìn)度顯示等,Eclipse資源管理-變化跟蹤機(jī)制,Eclipse的資源管理模塊中提供了資源變化跟蹤機(jī)制,允許用戶在變化

8、后執(zhí)行自定義操作,兩種機(jī)制目的不同,包括:資源變化監(jiān)聽(tīng)器:后臺(tái)運(yùn)行Builder:處理編譯,和用戶有交互,Eclipse資源管理:資源變化監(jiān)聽(tīng)器,事件處理核心接口IResourceChangeListenerIResourceDelta(資源變化增量)IResourceDeltaVisitor(增量訪問(wèn)者)注冊(cè)監(jiān)聽(tīng)器IWorkspace.addResourceChangeListener移除監(jiān)聽(tīng)器IWorkspace.

9、 removeResourceChangeListener,編寫(xiě)resource change listener注意點(diǎn),確保Lightweight 和 Fast!!!不對(duì)IResourceDelta做緩存?。?!多個(gè)listener之間保持透明,不互相依賴(lài)UI操作需要使用Display.sync/async進(jìn)行封裝性能優(yōu)化點(diǎn)配合IResourceDeltaVisitor,提升過(guò)濾效率IResourceDelta.findMem

10、ber(IPath) ,快速查找特定資源的變化IResourceChangeEvent.findMarkerDeltas ,快速收集Marker…,Eclipse資源管理:資源描述,工作區(qū)層面(ResourceInfo)Workspace. updateModificationStamp 文件系統(tǒng)層面(FileInfo)FileSystemResourceManager. updateLocalSync,Eclipse資源管理

11、:資源狀態(tài)-同步,同步檢查文件級(jí)別時(shí)間戳的比較目錄級(jí)別檢查較為寬松,因?yàn)椴煌僮飨到y(tǒng)自身對(duì)文件夾時(shí)間戳的支持力度不同工程級(jí)別檢查基本上判斷是否可以訪問(wèn),Eclipse資源管理:資源狀態(tài)-同步,造成資源不同步的主要原因使用了java io或者java nio進(jìn)行了修改操作用不恰當(dāng)?shù)慕涌趯?duì)ResourceInfo或者FileInfo進(jìn)行了直接修改注意外部builder(一般不要亂用),Eclipse資源管理:Builder

12、,編譯類(lèi)型(需要扎實(shí)理解)auto_build(本質(zhì)上為increment_build)full_build (本質(zhì)上為increment_build)clean_buildincrement_build編譯狀態(tài)一般由full build建立,increment build更新操作接口IWorkspace.buildIProject.build,Eclipse資源管理:Builder編寫(xiě)注意點(diǎn),盡量保持較為統(tǒng)一的編譯模

13、型建議:盡量保持一致的增量編譯邏輯注意和IWorkspaceRunable配合使用注意和其他builder的協(xié)調(diào)(尤其是JavaBuilder)Builder順序配置不同文件類(lèi)型的編譯處理,Eclipse資源管理:Builder ※ Listener,用途不同(listener更后臺(tái),builder更用戶相關(guān))執(zhí)行順序不同(listener無(wú)序,builder有序)變化增量?jī)?nèi)容不同:listener delta描述了整個(gè)

14、工作區(qū),builder delta描述工程范圍(工程上次編譯之后的資源變化信息)listener delta中持有marker信息和同步信息,builder delta中沒(méi)有(主要是性能考慮?。。。﹫?zhí)行上下文和控制上下文builder在固定名稱(chēng)Job中執(zhí)行,listener在隨機(jī)線程執(zhí)行builder(Job)便于控制和協(xié)調(diào),listener不便,Eclipse資源管理:持久化,后臺(tái)機(jī)制,本次不做具體講解,Eclipse資源管理

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論