百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

mhr18 2025-02-08 11:58 21 浏览 0 评论

译者 | 布加迪

编写嵌入式Java应用程序的开发人员有一大堆框架及其他工具可供选择。本文介绍了当今用于嵌入式开发的几种最佳Java框架。

Java的创造者对这种语言的愿景是“编写一次,随处运行”,他们在嵌入式领域取得的成功再明显不过了。只需编写Java程序的一个版本即可任意运行几乎一模一样的二进制文件,这对于为小型设备和隐藏计算机创建软件的团队来说有很大的吸引力。在许多情况下,这些开发人员对将在最终交付产品中运行的CPU了解不多,他们也不需要了解太多。

从长远来看,Java可在任何地方运行的灵活性还有助于产品团队,因为第二代、第三代或第四代产品可能在不同的芯片上运行。软件通常可以改动,几乎不需要编写额外的代码。

如今,许多Java框架被用于创建嵌入式Java应用程序。一些是用于多种机器的通用工具。它们通常是创建新应用程序的团队眼里的最佳选择。

其他框架是为特定设备或设备系列开发的。这可能包括编程基础和支持运行应用程序的设备或其他产品的功能。这种嵌入式Java框架最常见的例子可能是安卓,开发人员用它来为安卓机手机、Chromebook及电视等其他设备创建应用程序。

下面列举了八种出色的嵌入式Java框架。每一种都利用了Java平台的稳定性和广度以及面向小型设备和隐藏计算机的第三方库。这些框架对传统的Java技术和方法稍加改动,以便在嵌入式市场上运行得更快、更轻盈。

安卓

安卓可能是最知名的Java嵌入式框架。它最初是谷歌为了与苹果竞争而开发的手机创建应用程序的基础。许多原始代码库都是开源的,现在许多其他类型的设备(不仅仅是手机)都支持安卓应用程序。Chromebook中使用的谷歌ChromeOS就是一个例子。众多小设备将安卓应用程序引入到了客厅的大平面屏幕上。

编写安卓应用程序是覆盖所有这些设备的简单方法。它还允许设备创建者向第三方开发人员开放产品。

一些开发人员只使用基本的安卓库,这对于许多程序来说绰绰有余。其他人使用位于安卓之上的框架。一些最受欢迎的框架是Ionic、Flutter和Framework7。共同的特点让开发人员可以针对iOS等其他平台重新改造设计。比如说,Flutter针对六个不同的平台。

Java嵌入式框架

Java嵌入式框架使开发人员更容易编写与嵌入式系统中常见的接口对话的高级Java代码。流行的框架有Raspberry Pi和Orange Pi。使用这种框架,你无需掌握与SPI、I2C、Serial、GPIO或One Wire等硬件接口通信所需的低级编程。框架的开发人员已经为你处理了大部分任务。

Java嵌入式框架分为几大模块。主模块直接连接到控制板卡的Linux OS层。它简化了使用纯Java连接到操作系统层上的许多任务。这些板卡上常见的主要硬件部件也有驱动程序。

Oracle Event Processing

嵌入式设备的工作之一是捕获数据。比说,工厂车间依靠嵌入式机器来跟踪生产并观察异常情况。Oracle Event Processing框架是Oracle事件驱动服务器的轻量级版本,它使设备能够捕获事件、过滤事件,并根据需要传递事件。部分配置语法借鉴了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议。

Apache Mina

任何需要强大网络层的应用程序都可以使用Apache Mina,安全可靠地处理一些不同的NDP(邻居发现协议)或TCP连接。该代码构建在新的IO类(Java NIO) 之上,因此开发人员可以以更抽象的方式处理进出的数据。它的代码主要是事件驱动的,因此开发人员无需关注网络接口。

Java Card

一些嵌入式处理器裹以额外的安全层,以帮助处理敏感数据,比如金融交易的细节。Oracle的Java Card支持在防篡改芯片等安全飞地(enclave)内运行的多个应用程序。这些CPU通常速度较慢且内存较少,Java Card的框架经过精简,可以在资源较少的情况下顺畅运行。

总结

Java Web框架怎么样?

虽然本文重点介绍了为嵌入式机器设计的框架,但实际上越来越多的开发人员在为嵌入式设备创建Web应用程序。小设备可能功能较弱,但它们通常有足够的内存和CPU能力,为少数几个客户端运行Web服务器应用程序。一个不适合开放互联网上十亿用户的应用程序可以在嵌入式系统中顺畅运行。

这常常是很好的解决方案,因为它让用户可以借助Web应用程序连接到设备。开发人员可以利用基本网站的所有标准功能。

许多流行的Web应用程序框架在小型机器上运行得非常好。这一方面归因于竭力缩小和简化Java Web应用程序的服务器端。Spring Boot、Vert.x和Vaadin(另见Hilla)等更新颖的轻量级框架都是可靠的选择。一些嵌入式开发人员甚至可以使用更旧更笨重的框架,比如Spring、Struts或JavaServer Faces。

所有这些框架都可以追溯到服务器功能不那么强大的年代。它们适用于一个用户需要与软件交互,而嵌入式设备功能比较强大的场景。

将标准Java用于嵌入式应用程序

一些开发人员不需要使用嵌入式框架,因为他们从标准Java版本获得了所需的库和功能。Java Micro Edition(JME)有多个版本,一些是专门为嵌入式系统设计的。它们提供了重要的Java库,比如用于身份验证的Auth库以及用于解析和编写消息的JSON库。在一些情况下,这可能足够了。

面对更庞大、更强大板卡的开发人员甚至可以将Java标准版用于小型设备上的嵌入式应用程序。Oracle Java SE Embedded是针对嵌入式环境调整的Java标准版本。

Oracle通过提供标准二进制文件来支持许多不同类型的设备。比如说,Raspberry Pi及其他一些小型嵌入式系统是预构建的。Oracle还支持重要的细分市场,比如电话和电视。

对于基本的嵌入式Java开发项目而言,Oracle的标准下载版可以提供你需要的一切。

原文链接:

?https://www.infoworld.com/article/3669317/8-java-frameworks-for-embedded-development.html??

来源: 51CTO技术栈

相关推荐

AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术

IT之家5月21日消息,科技媒体linuxiac昨日(5月20日)发布博文,报道称代号为SageMargay的AlmaLinux9.6发行版已上线,距上一版本9.5发...

Java最新学习路线,系统全面,零基础适用

首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往javaee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!其中J2SE是关键...

深入理解数据库事务(数据库事务处理的理解)

Transaction作为关系型数据库的核心组成,在数据安全方面有着非常重要的作用,本文会一步步解析事务的核心特性,以获得对事务更深的理解。什么是事务数据库几乎是所有系统的核心模块,它将数据有条理地保...

IvorySQL 4.4 发布(1044mysql)

IvorySQL4.4已于2025年3月10日正式发布。新版本全面支持PostgreSQL17.4,新增多项新功能,并修复了已知问题。增强功能PostgreSQL17.3增强功...

Oracle 与 Google Cloud 携手大幅扩展多云服务

据DCD4月10日报道,甲骨文(Oracle)与谷歌云(GoogleCloud)深化合作,全力扩展多云产品。双方计划为OracleDatabaseGoogleCloud解决方案新增11...

Izzi 利用 Oracle 云提高计费效率和客户体验

据thefastmode网5月2日报道,墨西哥电信运营商Izzi宣布采用Oracle云基础设施(OCI),对其业务支持系统(BSS)进行现代化改造增强客户体验,已经成功完成。通过在OCI上运行...

好莱坞群星也有明星脸?硅谷科技名人本尊分身比一比

假如有部电影齐聚了众科技名人角色,如同许多好莱坞大牌卡司所共同主演的《瞒天过海》(Ocean’sEleven)那样,演出彼此在商场上竞逐、或共同对抗外来竞争捍卫硅谷的故事,更在剧中有不少对手戏,会不...

澳大利亚Find My iPhone被黑 多人被黑客锁机

FindMyiPhone本来是一个用于协助找回被盗手机的好工具,但是现在,澳洲的苹果用户发现他们的FindMyiPhone变成了黑客的帮凶。昨天,这名自称为OlegPliss的黑客使用Fin...

服务器密码错误被锁定怎么解决(服务器密码失效)

#服务器密码错误被锁定解决方案当服务器因多次密码错误导致账户被锁定时,可以按照以下步骤进行排查和解决:##一、确认锁定状态###1.检查账户锁定状态(Linux)```bash#查看账户锁定...

凌晨突发的数据库重大故障,我排查了一整天……

春节期间过得太热闹了,上班确实没啥状态,这不刚发生的一个重大性能故障,排查了整整一天,后面的领导都站成了一排,本次把故障发生的详细分析过程分享给大家!本次故障发生在凌晨,核心应用卡顿非常严重,Orac...

Oracle锁表紧急处理!3招快速解锁方案

开篇:突发故障现场凌晨1点,某电商系统突然卡顿,数千笔支付订单无法完成——数据库出现死锁,技术团队紧急响应...(遇到类似情况的,欢迎在评论区分享经历)一、问题重现:死锁是如何产生的?典型场景:问题根...

JetBrains DataGrip Mac中文破解版V2025.1下载安装教程

DataGripforMac是由JetBrains开发的数据库集成开发环境(IDE),专为数据库管理员和开发人员设计。它支持多种数据库(如MySQL、PostgreSQL、Oracle、SQ...

电脑装安卓系统,安卓X86版5.1 RC1下载

日前,谷歌放出了Android-x865.1的第一个候选版本Android-x865.1RC1,该版本基于Android5.1.1r24Lollipop开发,更新包括大量x86(32位)代...

来来来!一文告诉你Eclipse的正确安装使用姿势,你都清楚吗?

前言本学习笔记是有关如何设置Eclipse的详细说明。即使你天天在使用它,但是,相信我,或许你并不足够了解它。安装Java运行时环境Eclipse是Java应用程序,因此设置Eclipse的第一步是安...

分享收藏的 oracle 11.2.0.4各平台的下载地址

概述oracle11.2.0.4是目前生产环境用的比较多的版本,同时也是很稳定的一个版本。目前官网上已经找不到下载链接了,有粉丝在头条里要求分享一下下载地址。一、各平台下载地址1.1Linuxx...

取消回复欢迎 发表评论: