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