当前位置: 首页 > 科技观察

嵌入式开发的八个Java框架,你知道几个?_0

时间:2023-03-14 22:59:15 科技观察

翻译|布加迪评论家|大多数编写嵌入式Java应用程序的开发人员有多种框架和其他工具可供选择。本文介绍当今用于嵌入式开发的几种最佳Java框架。Java语言愿景的创建者是“一次编写,随处运行”,他们在嵌入式领域的成功再明显不过了。只需编写一个版本的Java程序并能够任意运行几乎相同的二进制文件,对于为小型设备和隐藏计算机创建软件的团队来说是一个很大的吸引力。很多时候,这些开发人员对最终交付时要运行的CPU了解不多,也不需要了解太多。Java在任何地方运行的灵活性从长远来看也有助于产品团队,因为第二代、第三代或第四代产品可能在不同的芯片上运行。通常只需很少的额外编码就可以更改软件。今天,许多Java框架用于创建嵌入式Java应用程序。有些是用于各种机器的通用工具。在创建新应用程序的团队眼中,它们通常是最佳选择。其他框架是为特定设备或设备系列开发的。这可能包括编程基础知识和设备或运行应用程序的其他产品的支持功能。这种嵌入式Java框架最常见的例子可能是Android,开发人员使用它为其他设备(如Android手机、Chromebook和电视)创建应用程序。下面列出了八个出色的嵌入式Java框架。每个都利用了Java平台的稳定性和广度以及适用于小型设备和隐藏计算机的第三方库。这些框架对传统的Java技术和方法进行了细微的改动,以便在嵌入式市场上运行得更快、更轻便。AndroidAndroid可能是最著名的Java嵌入式框架。它最初是谷歌为与苹果竞争而开发的用于创建手机应用程序的基础。许多原始代码库是开源的,许多其他类型的设备(不仅仅是手机)现在都支持Android应用程序。用于Chromebook的谷歌ChromeOS就是一个例子。大量的小工具将Android应用程序带到了客厅的大平板屏幕上。编写Android应用程序是覆盖所有这些设备的简单方法。它还允许设备创建者向第三方开发者开放他们的产品。一些开发人员只使用基本的Android库,这些库对于许多程序来说绰绰有余。其他人使用位于Android之上的框架。一些最流行的框架是Ionic、Flutter和Framework7。共同特征允许开发人员为其他平台(如iOS)重新设计。例如,Flutter针对六个不同的平台。JavaEmbeddedFrameworkJavaEmbeddedFramework使开发人员更容易编写与嵌入式系统中常见的接口对话的高级Java代码。流行的框架是RaspberryPi和OrangePi。使用此框架,您无需掌握与硬件接口(如SPI、I2C、串行、GPIO或单线)通信所需的低级编程。框架的开发人员已经为您处理了大部分任务。Java嵌入式框架分为几个模块。主模块直接连接到控制板的Linux操作系统层。它简化了使用纯Java连接到操作系统层的许多任务。还有这些板上常见的主要硬件组件的驱动程序。Oracle事件处理嵌入式设备的一项工作是捕获数据。例如,工厂车间依靠嵌入式机器来跟踪生产和观察异常情况。OracleEventProcessing框架是OracleEvent-DrivenServer的轻量级版本,它使设备能够捕获事件、过滤它们并根据需要传送它们。部分配置语法借鉴了SQL,使用起来更方便。该框架的事件处理模型还可以深入挖掘事件流,以查找数据中的关联和其他模式。Jersey如果您的工作需要对嵌入式设备进行编程以响应充分利用REST的事件,那么Jersey是一个不错的选择。通过扩展JAX-RS工具包,它针对传入和传出的JSON数据包进行了优化。架构师喜欢这个解决方案,因为它可能是自动与设备通信的最佳方式之一。Jersey提供了几个附加功能,包括“分块”响应的能力。这意味着存储数据,然后以块的形式发送。分块对于并不总是连接到互联网的设备特别有用。它还有助于减少负责与许多设备通信的任何中央服务器的负载。Vert.x许多人将Vert.x视为构建功能齐全的Web应用程序的框架。好处是它被分解成模块,您不必使用所有模块。Vert.x的核心包含用于编写与世界和机器交互的服务的大部分重要代码。任何创建基本工具的人都依赖于Vert.x框架的网络和文件系统协议来设置处理传入和传出请求的流程。某些Vert.x模块可能非常适合嵌入式任务。例如,OpenAPI库和API服务库执行支持API的大部分工作。GraphQL库包含支持GraphQL调用所需的例程。这些库主要用于构建Web应用程序和Web服务,但它们也可用于处理更简单的通信。Dropwizard如果目标是构建一个充分利用REST的简单、强大的Web服务,许多Java开发人员会转向Dropwizard。它也是嵌入式应用程序的绝佳选择。您可以使用Web服务API来控制和配置设备,其他设备可以通过其API访问该服务。人类可以通过带有少量JavaScript的静态HTML页面来控制服务。Dropwizard分为许多较小的模块,可以根据您需要的功能添加或排除这些模块。核心模型和数据库模块适用于基本任务。与服务交互的人可以使用表单或视图模块。认证通常是个好主意,Dropwizard的认证模块支持基本协议和OAuth2协议。ApacheMina任何需要强大网络层的应用程序都可以使用ApacheMina来安全可靠地处理大量不同的NDP(邻居发现协议)或TCP连接。该代码构建在新的IO类(JavaNIO)之上,因此开发人员可以以更抽象的方式处理传入和传出数据。它的代码大多是事件驱动的,所以开发者不需要关注网络接口。JavaCard一些嵌入式处理器包裹有额外的安全层,以帮助处理敏感数据,例如金融交易的详细信息。Oracle的JavaCard支持在安全区域(例如防篡改芯片)中运行的多个应用程序。这些CPU通常速度较慢且内存较少,而且JavaCard的框架已经过精简,可以用更少的资源流畅运行。总而言之,JavaWeb框架怎么样?虽然本文关注的是为嵌入式机器设计的框架,但实际上越来越多的开发人员正在为嵌入式设备创建Web应用程序。小型设备可能不那么强大,但它们通常有足够的内存和CPU能力来为少数客户端运行Web服务器应用程序。一个在开放互联网上不适合十亿用户使用的应用程序,在嵌入式系统中却可以流畅运行。这通常是一个很好的解决方案,因为它允许用户通过Web应用程序连接到设备。开发人员可以利用基本网站的所有标准功能。许多流行的Web应用程序框架在小型机器上运行得非常好。部分原因是为了缩小和简化JavaWeb应用程序的服务器端。较新的轻量级框架,如SpringBoot、Vert.x和Vaadin(另请参阅Hilla)是不错的选择。一些嵌入式开发人员甚至可以使用较旧且笨重的框架,如Spring、Struts或JavaServerFaces。所有这些框架都可以追溯到不那么强大的服务器时代。它们适用于用户需要与软件交互且嵌入式设备功能更强大的场景。为嵌入式应用程序使用标准Java有些开发人员不需要使用嵌入式框架,因为他们从标准Java版本中获得了所需的库和功能。有多个版本的JavaMicroEdition(JME),有些是专门为嵌入式系统设计的。它们提供了重要的Java库,例如用于身份验证的Auth库和用于解析和编写消息的JSON库。在某些情况下,这可能就足够了。面对更大、更强大的电路板的开发人员甚至可以将Java标准版用于较小设备上的嵌入式应用程序。OracleJavaSEEmbedded是针对嵌入式环境优化的Java标准版本。Oracle通过提供标准二进制文件支持许多不同类型的设备。例如,RaspberryPi和其他一些小型嵌入式系统是预构建的。Oracle还支持电话和电视等重要的细分市场。对于基本的嵌入式Java开发项目,Oracle的标准下载提供了您需要的一切。原文链接:https://www.infoworld.com/article/3669317/8-java-frameworks-for-embedded-development.html