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)絡包出于必要,因為設計者不能對一個作為基礎的操作系統(tǒng)的網(wǎng)絡設施做任何假定,他們必須得包括集成網(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ù)程序的崩潰是因為意外輸入,或者是因為程序不能調(diào)用系統(tǒng)資源來完成某個特定操作。
在Java中,由拋出(產(chǎ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的其他特點一樣,該功能是必要的,因為設計者不敢確定底層的操作系統(tǒng)是否支持多線程。
開發(fā)者越來越多的在程序中使用線程,將其作為滿足一個程序不能完成的,通常相互無關的一些任務的一種手段。由于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不再難懂)
評論