2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Tabris 1.0:使用 JAVA 进行跨平台移动开发

  • 2013-05-06
  • 本文字数:1494 字

    阅读完需:约 5 分钟

经过三年的开发,EclipseSource 终于发布了 Tabris 1.0,这是一个支持 iOS 和 Android 的跨平台 Java 移动开发框架。Tabris 定位于企业,与其他移动解决方案不同的是,它使用了不同的方法:

  • 大多数编程工作都使用 JAVA 完成
  • 业务逻辑和客户端 UI 的二进制表示运行在服务器端的 Eclipse RAP
  • 一个很薄的客户端应用运行在移动设备上
  • 服务器端通过 JSON 格式与客户端通信,发送数据和命令让客户端 创建可视的 UI
  • 客户端使用原生组件生成界面
  • iOS 的客户端使用 Object-C 编写,而 Android 的客户端则使用 Java 编写

Tabris 自带了一个构建于的 Java SWT API 之上的 UI 工具包。该工具包增加了两个主要功能部件:页面(Page) 和动作(Action)。前者包含的是应用的基本内容,而后者主要用来执行用户的命令。下面是一个 Tabris 示例应用的截图,其中页面显示为红色,而动作显示为绿色:

页面可以互相链接并导航,而动作既可以是整个应用的全局动作,也可以是当前页面的局部动作。

在处理完一个 组件后,应用的服务器端会将一个JSON 片段发送到客户端,比如下面的例子是创建一个按钮:

客户端应用则会使用iOS 或Android 的原生组件渲染该按钮。

InfoQ 采访了 EclipseSource 的 Tabris 服务器端的团队负责人 Holger Staudacher ,以了解关于该框架的更多信息。据 Staudacher 介绍,Taris 定位于企业,而且需要一直连接到服务端:

Tabris 用于现场移动类应用。这意味着它最好工作在受控的环境中。我所说的受控的意思是使用固定的网络连接,诸如此类。我们的客户——如医院——所有的设备都连接到同一网络。此类应用程序通常是由企业开发的。

Tabris 不支持脱机工作。移动用户界面基本就是一个会话。因此,如果用户的设备断开了连接,则会话会变为无效。在移动客户端可以进行错误处理。我们 实现了标准的错误处理,比如重新发送 http 请求等等。但应用开发人员可以使用原生扩展加以扩充。

当被问及Tabris 是否适合开发一般应用时,Staudacher 说理论上是可以的,但那并非它的最佳使用场景 :

对于一般的应用,这意味着服务器的负载会很高。我们使用的是标准的Java EE 技术。所以, 面对这样的高负载,可以使用Java EE 集群机制。目前我们尚未测试数以百万计的用户负载。但从技术的角度看应该是可行的。

Tabris 支持许多 SWT 组件,还增加了对一些原生感应器(如摄像头和地理定位设备)的支持。

目前,Tabris 支持平板电脑,但这样的应用每次只能显示一个页面。将来会添加对多个页面的支持。此外,Tabris 可以扩展到其他移动平台,如果有动力的话,该框架获或许会支持 Windows。

在不久的将来,Tabris 团队打算增加如下功能:

  • 支持地址簿
  • 支持设备的不同方位状态(垂直或水平)
  • 支持用于处理客户端事件的客户端脚本
  • 支持 XCallbackUrl

根据 FAQ 所述,使用 Tabris 创建的应用能通过 App Store 部署,“只要你遵守 App Store 的规则”。在 Google Play 上有一个针对 Android 的示例应用

Tabris 并不开源,但企业授权用户能获得源代码。更多详情,请访问 EclipseSource 的价格体系页面

『号外』:JavaOne 2013 大会将于 7 月 22–25 日在上海世博中心举行,内容涵盖使用 Java SE 构建现代应用程序、打造针对下一代智能设备的移动和嵌入式 Java 应用程序、编制基于 Java EE 的复杂企业解决方案以及在云环境中安全、无缝地构建和部署业务应用程序等,报名或查看详情请点击

查看英文原文 Tabris 1.0: Cross-platform Mobile Development in Java


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-05-06 06:573662
用户头像

发布了 81 篇内容, 共 28.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Java面试八股文大全(附各大厂面试真题及答案)

Geek_Yin

编程 程序员 java面试 Java面试题

什么是Redis缓存穿透?redis面试题及答案乐分享(附面试题大全)

程序员高级码农

redis 程序员

数据太多、系统太慢、调度太乱?电力行业最全数据难题全在这份白皮书里

TDengine

数据库 tdengine 时序数据库

快手基础大模型团队7篇论文入选人工智能领域顶会ACL 2025

快手技术

acl 快手 论文解读 学术成果

Redis 数据恢复的月光宝盒,闪回到任意指定时间

百度Geek说

DePIN的底层逻辑:让物理基础设施加速市场化

PowerVerse

加密货币 去中心化 算力 #区块链 DePIN

埃文科技智能数据引擎产品入选《中国网络安全细分领域产品名录》

郑州埃文科技

Amadeus Pro: 专业音频编辑,Mac 用户的终极选择!

Rose

Java基础八股文面试题总结+答案解析

Geek_Yin

编程 程序员 java面试 Java面试题

中科大、月之暗面等开源对话式语音合成模型 MoonCast;ChatGPT 发布「录音模式」,自动录音和生成会议纪要丨日报

声网

P4.81户外租赁LED显示屏全面解析

Dylan

LED LED display LED显示屏 市场 LED屏幕

beyondcompare5永久激活密钥 及 Beyond Compare安装教程

Rose

AI本地化部署的优势

北京木奇移动技术有限公司

软件外包公司 AI本地化部署 AI本地化

最全的Java面试八股文合集

Geek_Yin

编程 程序员 java面试 Java面试题

背完这套 Java 面试八股文,offer拿到手软

Geek_Yin

编程 程序员 java面试 Java面试题

AI 本地化部署的详细方案

北京木奇移动技术有限公司

软件外包公司 AI技术应用 AI本地化部署

郑州工程技术学院赴埃文科技开展访企拓岗促就业活动

郑州埃文科技

“一代更比一代强”:现代 RAG 架构的演进之路

Baihai IDP

AI LLM 检索增强生成

深度解读「高盛」人形机器人双研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

如何批量查询手机号码归属地,在线工具平台,可按省份分离、按城市分开、按号段分类、按移动联通电信来分别导出excel。

飞舞的键盘

家具工厂MES生产管理系统解决方案

万界星空科技

制造业 mes 万界星空科技mes 家具行业 家具mes

鸿蒙仓颉语言开发教程:仓颉语言中的状态存储

幽蓝计划

2025最新版Java面试八股文PDF

Geek_Yin

编程 程序员 java面试 Java面试题

AI本地化部署的流程

北京木奇移动技术有限公司

AI技术 软件外包公司 AI本地化

TikTok账号被封原因及IP关联问题解决办法

Ogcloud

TikTok 云手机 海外云手机 tiktok运营 tiktok封号

时序数据库 TDengine 带着三大石油项目落地实践,亮相 2025 中国石油石化大会

TDengine

数据库 大数据 tdengine 时序数据库

昇腾NPU上基于MindIE服务的AIME和MATH500测评方案

小顺637

大模型 昇腾

HTTP2.0 从原理到实践,保证把你治得服服帖帖!

左诗右码

GPU性能怎样影响大模型训练速度?

Ogcloud

gpu 服务器 服务器租用 gpu 算力

苹果mac高效协同办公:Slidepad自动隐藏、快速搜索、多桌面支持

Rose

Tabris 1.0:使用JAVA进行跨平台移动开发_Java_Abel Avram_InfoQ精选文章