物聯(lián)網、UI/UX 和 AI 等嵌入式系統(tǒng)每天都變得越來越復雜。過去只有一個或兩個功能的產品現(xiàn)在為用戶提供了更多的實用程序,需要反映用戶界面提供的體驗。物聯(lián)網正在改變我們處理硬件的方式,保證了互聯(lián)、自動化甚至更智能的日常生活。Java是最常用的編程語言之一,特別是因為它易于開發(fā)和跨平臺使用。但是,Java尚未在嵌入式系統(tǒng)的開發(fā)中被廣泛采用。事實上,C/C++仍然是嵌入式系統(tǒng)中最流行的編程語言。大約80%的嵌入式系統(tǒng)項目是用C/C++編寫的,但將來不會這樣??赡軙捎眯碌恼Z言來滿足市場增長。使用 C/C++ 構建項目非常耗時,并且很難找到或培訓新的 C/C++ 專業(yè)人員。本文的目的是展示使用Java進行嵌入式系統(tǒng)開發(fā)的主要優(yōu)點,以及這種語言的缺點(以及建議處理和解決這些缺點的方法)。
物聯(lián)網和嵌入式系統(tǒng)與Java的比較
多年來,參與嵌入式系統(tǒng)開發(fā)的專業(yè)人員數(shù)量大幅增長。當然,這種專業(yè)人員與從事臺式機和移動設備應用程序開發(fā)的人數(shù)之間存在巨大差異。但是,根據(jù)IC Insights的數(shù)據(jù),嵌入式設備MPU的銷量將在三年內與智能手機處于同一水平。
一般來說,機器已經配備了真正的技術武器庫。我們周圍的產品,如汽車和家用電器,已經創(chuàng)造出能夠響應人類需求的不同事件和要求的能力。在這種情況下,物聯(lián)網代表的不是未來的趨勢,而是現(xiàn)在正在發(fā)生的事情。這也可以在工業(yè)環(huán)境中看到。工業(yè)自動化需要更多的連接性、數(shù)據(jù)分析,當然還有新的儀表板。
考慮到所有這些,有必要關注未來的預期。盡管 C 和 C++ 需要更少的內存和 CPU 周期,但 Java 應該被視為嵌入式系統(tǒng)的更好選擇,因為它是最有組織的編程語言之一,非常適合大型項目。Java 具有嵌入式系統(tǒng)環(huán)境的理想特征,包括可移植性、代碼重用、可靠性、安全性、WEB 以及與其他嵌入式系統(tǒng)的連接。為了提供嵌入式世界需要(并且已經要求)的東西,使用像Java這樣的高級語言是很重要的。此外,世界上有很多Java開發(fā)人員,遷移到嵌入式系統(tǒng)對他們來說應該不是問題。
在嵌入式系統(tǒng)上使用 Java 的優(yōu)勢
使用Java為嵌入式設備開發(fā)應用程序,除了最佳的語言質量外,由于各種用途和現(xiàn)有支持,還可以減少應用于項目創(chuàng)建的時間和成本。那么,讓我們看看為什么你應該將Java用于嵌入式系統(tǒng)的其他一些原因:
上市時間很重要,提供更少的開發(fā)時間:Java具有理想的內存管理,并且更容易檢測錯誤(并修復它們);
建議用于超過 5 個屏幕的 GUI 項目;
從第一個版本開始就堅固耐用(得益于封裝概念、設計模式和 SOLID 原則);
單純;
可移植到不同的CPU或操作系統(tǒng)(無需重寫代碼);
安全性,支持加密敏感數(shù)據(jù);
大量獨立于操作系統(tǒng)的庫;
可在桌面和遠程調試;
在高級語言和高性能方面的最佳折衷方案(取決于所使用的虛擬機);
看起來很完美!但是(就像世界上的一切一樣)也有一些缺點。讓我們看看Java在嵌入式系統(tǒng)面臨的挑戰(zhàn)。
將 Java 用于嵌入式系統(tǒng)的缺點
選擇Java有很多很好的理由。但是,在嵌入式系統(tǒng)上使用 Java 有三個主要缺點:
Java非常冗長;
它復雜而龐大(217 個包,4240 個類);
性能低。
甚至甲骨文自己也創(chuàng)建了Java SE Embedded來解決這類問題,并針對嵌入式設備優(yōu)化了虛擬機。但是,對于大量針對低端設備的項目來說,這還不夠。
這種擔憂一直是Java進入嵌入式系統(tǒng)的主要障礙。但好消息是,有一些新技術旨在解決所有這些問題。
嵌入式系統(tǒng)占用空間小,性能高
為了實現(xiàn)這一目標,有必要找到完整Java和Java虛擬機的替代方案。在這種情況下,TotalCross是一個有趣的框架。
TotalCross是嵌入式系統(tǒng)的SDK,使用自己的虛擬機,稱為TotalCross虛擬機(TCVM)。TCVM 不是基于堆棧的 JVM,而是基于寄存器的虛擬機。這在運行時間上產生了巨大的差異,因為它減少了加載的指令數(shù)量。正如您在以下示例中看到的,一個簡單的操作在 JVM 上加載四條指令,而在 TCVM 上運行時只加載一條指令。
除了TCVM之外,還基于統(tǒng)計研究創(chuàng)建了一個稱為TotalCross字節(jié)碼的優(yōu)化字節(jié)碼,以確定對性能影響最大的最常用的函數(shù)。除了這些函數(shù)減少指令數(shù)量的壓力外,這種優(yōu)化的字節(jié)碼還確保了低占用空間,因為它使用了一個名為 Nano Java 的 Java 子集,該子集只有 86 個包和 1184 個類(完整 Java 的 1/4)。
TotalCross不使用所有的Java架構,而只使用嵌入式應用程序開發(fā)所需的架構。所有這些特性為嵌入式系統(tǒng)提供了5MB的占用空間和高性能。
結論
在嵌入式系統(tǒng)上使用Java的優(yōu)點多于缺點,特別是因為代碼的質量和已經能夠使用Java編程的大量人員。將Java社區(qū)納入嵌入式系統(tǒng)領域尤為重要,因為它是編程世界中的第三大社區(qū)。但是,正如我們所看到的,足跡和性能會影響項目結果。因此,建議使用能夠打破這些障礙的替代方案,例如TotalCross框架。有了它,可以享受Java的所有優(yōu)點,并且仍然保證嵌入式系統(tǒng)的低占用空間和高性能。
審核編輯:郭婷
-
嵌入式
+關注
關注
5060文章
18980瀏覽量
302262 -
JAVA
+關注
關注
19文章
2952瀏覽量
104495
發(fā)布評論請先 登錄
相關推薦
評論