0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于嵌入式系统的Java:优点和缺点

星星科技指导员 来源:嵌入式计算设计 作者:Kaique Mancoso 2022-11-22 16:50 次阅读

物联网、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 个类);

性能低。

甚至甲骨文自己也创建了Java SE Embedded来解决这类问题,并针对嵌入式设备优化了虚拟机。但是,对于大量针对低端设备的项目来说,这还不够。

这种担忧一直是Java进入嵌入式系统的主要障碍。但好消息是,有一些新技术旨在解决所有这些问题。

嵌入式系统占用空间小,性能高

为了实现这一目标,有必要找到完整Java和Java虚拟机的替代方案。在这种情况下,TotalCross是一个有趣的框架。

TotalCross是嵌入式系统的SDK,使用自己的虚拟机,称为TotalCross虚拟机(TCVM)。TCVM 不是基于堆栈的 JVM,而是基于寄存器的虚拟机。这在运行时间上产生了巨大的差异,因为它减少了加载的指令数量。正如您在以下示例中看到的,一个简单的操作在 JVM 上加载四条指令,而在 TCVM 上运行时只加载一条指令。

除了TCVM之外,还基于统计研究创建了一个称为TotalCross字节码的优化字节码,以确定对性能影响最大的最常用的函数。除了这些函数减少指令数量的压力外,这种优化的字节码还确保了低占用空间,因为它使用了一个名为 Nano Java 的 Java 子集,该子集只有 86 个包和 1184 个类(完整 Java 的 1/4)。

TotalCross不使用所有的Java架构,而只使用嵌入式应用程序开发所需的架构。所有这些特性为嵌入式系统提供了5MB的占用空间和高性能。

结论

在嵌入式系统上使用Java的优点多于缺点,特别是因为代码的质量和已经能够使用Java编程的大量人员。将Java社区纳入嵌入式系统领域尤为重要,因为它是编程世界中的第三大社区。但是,正如我们所看到的,足迹和性能会影响项目结果。因此,建议使用能够打破这些障碍的替代方案,例如TotalCross框架。有了它,可以享受Java的所有优点,并且仍然保证嵌入式系统的低占用空间和高性能。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4962

    文章

    18145

    浏览量

    286510
  • JAVA
    +关注

    关注

    19

    文章

    2903

    浏览量

    102867
收藏 人收藏

    评论

    相关推荐

    嵌入式人工智能的就业方向有哪些?

    操作系统使用及C高级编程 数据结构与算法 二:嵌入式Linux应用工程师,Linux网络开发工程师 文件IO 并发程序设计 项目实战:基于Linux的Flappybird游戏开发 网络编程开发及实战上
    发表于 02-26 10:17

    嵌入式系统发展前景?

    的发展前景也十分广阔。 随着物联网和智能设备的快速发展,嵌入式系统将更为普遍地应用于各种设备和设施,包括家用电器、医疗设备、交通工具等。这些设备将通过嵌入式
    发表于 02-22 14:09

    嵌入式学习步骤

    语言编写。但是,有些嵌入式系统也使用其他编程语言,例如Python或Java。 (3).了解硬件:深入了解您要控制的硬件设备的功能和特性。您需要了解嵌入式
    发表于 02-02 15:24

    嵌入式自学好书推荐

    科技的发展和市场的扩大,嵌入式系统在未来仍将是一个重要的方向。 嵌入式开发的薪资待遇也较为优厚,工作时间相对前端和Java开发较少,且享有五险一金。对于应届生来说,一般薪资在6-8k
    发表于 01-11 15:13

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 536次阅读

    为什么嵌入式没有35岁危机?

    嵌入式技术是指将计算机系统嵌入到其他设备或系统中的一种技术。它广泛应用于汽车、家电、医疗设备等领域,并且在智能手机、智能家居和物联网等新
    发表于 11-17 10:33

    嵌入式系统中时间片的任务调度方式的优点是什么?

    嵌入式系统中时间片的任务调度方式的优点是什么
    发表于 10-20 06:48

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程师的工资在同
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    。 那么从事嵌入式工作有哪些优势? 一是工作强度相对较低。开发企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都不同,开发人员往往疲于奔命,重复劳动
    发表于 10-08 15:05

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-28 06:59

    嵌入式操作系统IJLC/OS一Ⅱ在通信电源监控中应用

    的查询分析和统计等功能也必不可少。通信电源设备运行参数多,实时效果强,在设备当中选择功能强大的控制芯片.应用嵌入式操作系统.使其尽可能地发挥出强大的软件控制功能,满足用户对通信电源控制的各种要求。与传统
    发表于 09-20 06:46

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-11 07:24

    什么是嵌入式系统嵌入式系统的优缺点及应用

    嵌入式系统很普遍,但它们究竟是什么,它们在哪里使用?在本文,工程师将嵌入式系统与台式机或笔记本电脑进行比较,考虑它们的优缺点,并介绍一些应用
    的头像 发表于 07-07 09:48 6166次阅读

    初学者如何选择Java嵌入式

    看到这个问题下的答主几乎清一色吹Java,劝退嵌入式,作为一名Java从业者,我觉得大可不必!
    的头像 发表于 06-02 10:14 453次阅读

    嵌入式用什么语言编程?

    嵌入式用什么语言编程? 嵌入式系统应用越来越广泛,专业的嵌入式工程师对这样的问题肯定不会太关注,只是针对一些初级入门者,做个简单的了解,认识一下这个广受关注的技术是由哪种语言编写的?
    发表于 05-18 10:08