Java在嵌入式系統(tǒng)中的解決方案
F)網(wǎng)絡
由于今天的嵌入式系統(tǒng)通常都是網(wǎng)絡的,采用內(nèi)置網(wǎng)絡支持的語言節(jié)約了在實現(xiàn)網(wǎng)絡協(xié)議和通信程序方面耗費的大量時間和努力。在Java中,網(wǎng)絡類包括TCP/IP流和使用TCP及UDP的數(shù)據(jù)報程序,用于HTTP和URL服務的操作方法,以及錯誤檢查代碼和恢復功能。
雖然實現(xiàn)網(wǎng)絡也可能用其他語言,比如C語言,但那些語言要求特別的附件軟件包,DLL,或其他必須由操作系統(tǒng),或者第三方銷售提供程序模塊,特別附件通常要求有操作系統(tǒng)或第三方工具的知識,不象Java,有標準的、內(nèi)置的網(wǎng)絡支持。
Java包括網(wǎng)絡包出于必要,因為設(shè)計者不能對一個作為基礎(chǔ)的操作系統(tǒng)的網(wǎng)絡設(shè)施做任何假定,他們必須得包括集成網(wǎng)絡程序庫,以確保Java程序能在所有平臺上工作。
G)動態(tài)配置
動態(tài)配置是指一系統(tǒng)啟動時的用戶制定配置或重新配置。需載入特殊的硬件配置、網(wǎng)絡參數(shù)或在引導期間支持特定用途的一些實用程序的系統(tǒng),常常使用動態(tài)配置。
Java以動態(tài)捆綁來支持動態(tài)配置。當你組成一個程序的各個類文件編譯成字節(jié)碼時,在你的類文件之間,或者對JVM包的類(如圖形、網(wǎng)絡以及核心語言支持)引用,還沒有被解決。當JVM載入你的程序時,它動態(tài)的載入并捆綁(即鏈接)你的程序引用的所有的類。因此,要改變系統(tǒng)配置,你所需要做的一切就是修正相應的類文件。下一次系統(tǒng)時,JVM自動捆綁新文件到你的程序中,而新的配置將生效執(zhí)行。
H)異常處理
與許多操作系統(tǒng)和程序不同,對嵌入系統(tǒng)而言,重新啟動通常是無法接受的,就像我們都不希望打電話或者看電視時突然有技術(shù)性的中斷一樣。這意味著實際上所有嵌入式系統(tǒng)都必須足夠堅實以截取錯誤來防止它們使程序或更糟的是使整個設(shè)備崩潰。
程序錯誤的致因很多。相對來說,很少是因為繼承邏輯錯誤,而大多數(shù)程序的崩潰是因為意外輸入,或者是因為程序不能調(diào)用系統(tǒng)資源來完成某個特定操作。
在Java中,由拋出(產(chǎn)生)一個異常來提示錯誤。使用專門為異常處理而設(shè)計的語句(關(guān)鍵字try、catch、和finally),程序就能將其錯誤處理代碼安排到幾個集中區(qū)域,try程序塊是程序執(zhí)行的正常流程。當一個異常發(fā)生在try塊(包括該嵌套塊中的各層子程序)中,控制就交給了catch塊。不管是否有異常發(fā)生,finally塊中的代碼始終要被執(zhí)行。未被處理的異常會由調(diào)用堆棧自下而上傳播JVM并終止程序。你不再需要動手編程,來將錯誤狀態(tài)通過幾層函數(shù)調(diào)用返回。而是,在錯誤發(fā)生由檢測錯誤的代碼直接拋出一個異常。這極大地簡化了應用程序中的錯誤處理代碼,進而獲得更好地錯誤處理效果和更堅實可靠的代碼。
I)線程
大多數(shù)操作系統(tǒng)都給一個過程產(chǎn)生和管理多個線程的能力,這些線程彼此獨立地完成不同地任務。但是,很少由程序語言提供對線程管理的直線支持,通常都需要直接調(diào)用操作系統(tǒng)功能。Java卻相反,直接在語言提供了產(chǎn)生、管理和協(xié)調(diào)同步線程地功能。與Java的其他特點一樣,該功能是必要的,因為設(shè)計者不敢確定底層的操作系統(tǒng)是否支持多線程。
開發(fā)者越來越多的在程序中使用線程,將其作為滿足一個程序不能完成的,通常相互無關(guān)的一些任務的一種手段。由于Java對線程有內(nèi)置語言支持,以Java創(chuàng)建多線程較之與其它語言更簡單、更自然。
J)圖形
JVM包括一個龐大的圖形及窗口支持程序包,稱為Abstract Windowing Toolkit(AWT)。用AWT,你能在應用程序中快速而輕易地創(chuàng)建精致而強大的圖形用戶界面。對于需要精細的用戶界面的嵌入系統(tǒng)來說,AWT能節(jié)省大量開發(fā)時間,從而是產(chǎn)品更快的走向市場。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論