IoT、UI/UX 和 AI 等嵌入式系统每天都变得越来越复杂。过去只有一两个功能的产品,现在为用户提供了更多的实用程序,要求用户界面反映体验。物联网正在改变我们处理硬件的方式,确保实现互联、自动化甚至更智能的日常工作。Java 是最常用的编程语言之一,特别是因为它易于开发和跨平台。但是,Java 在嵌入式系统的开发中还没有被广泛采用。事实上,C/C++ 仍然是嵌入式系统最流行的编程语言。大约 80% 的嵌入式系统项目是用 C/C++ 编写的,但未来不会这样。可能会采用新的语言来满足市场增长。使用 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 的所有优点,同时仍然保证嵌入式系统的低占用空间和高性能。
审核编辑:郭婷
-
嵌入式 +关注
关注
3715文章
15005浏览量
261784 -
AI +关注
关注
85文章
20454浏览量
239049 -
IOT +关注
关注
89文章
3003浏览量
164346
发布评论请先 登录
相关推荐
听潮汐,筑灯塔,聚千帆:智慧港口全球创新实验室启航时
兆瀚×智慧公路 AI智变加速质变 科技创新赋能智慧交通
瑞为技术完成融资 用于深化AI算法及产品研发
Seoul Robotics利用NVIDIA技术实现自动驾驶
映翰通网络全新羚羊购AI智能售货柜助力智慧新零售
IBM实现混合云全部潜力 推动AI发挥全方位作用
亿智电子端侧通用AI算力赋能智慧视觉芯生态
HPC、AI与云计算:当智能时代三叉戟在亚马逊云科技完美融合
I2C3挂载wm8960音频芯片
使用NVIDIA CloudXR加快AECO工作流程
机智云IoT为传统水族设备厂商推出一系列全新智能水族设备解决方案
借助NVIDIA V100 GPU加速AI医学影像学研究
星环科技一站式模型平台与华为Atlas 300I Pro推理卡完成兼容性适配
小数据时代嵌入式工程师面临新挑战
了解SSD应用程序类别可简化选择正确的存储解决方案
BeagleBone AI-64带来AI和机器学习解决方案
海康威视AI助手地铁运营更安全、检修更轻松
商汤科技亮相2022中国地理信息产业大会
为高级图像处理和分析部署AI视觉套件
瑞为入选国家级专精特新“小巨人”企业名单
IOT OS比较,分析IOT OS的发展方向
AI辅助诊断失智症与脸部情绪识别
踏歌智行荣登国家级专精特新“小巨人”名单
使用双SD卡数据存储策略提高工业系统的可靠性
思必驰智能语音报警器带来智能骑行新体验
边缘设备中计算机视觉和语音的AI推理加速器应用
NVIDIA助力Telexistence在全家便利店部署补货机器人
释放边缘工作负载整合的全部潜力
关于单片机与嵌入式、操作系统与RTOS之间的那些事!
微软开源工具可轻松地测试和训练AI驱动的无人机
如何使用Eclipse玩转STM32(上)

WebClient软件包的两个HTTP Client示例程序演示功能
简述基于HTTP协议实现WebClient软件包的工作原理
嵌入式初级工程师全套学习资料包(第一阶段)

每周精选 | 征文大赛精选技术文章合集,战“码”先锋第二期正式开启
使用SystemReady IR简化嵌入式Linux系统
阿里云IoT软件包API接口说明
阿里云IoT软件包手册的框架是由哪些部分组成的
【社区之星】祁佳琳:学习应当向下扎根,才能汲取向上生长的力量

评论