【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Google 发布 J2ObjC 1.0:将 Java 转换为 Objective-C

  • 2016-02-16
  • 本文字数:861 字

    阅读完需:约 3 分钟

J2ObjC 是一个 Google 开发的开源工具,用于将 Java 代码转换为 Objective-C 代码。其目的是为了能在 iOS 平台上重用 Android 平台、web 服务器端的 Java 代码。服务器端代码的转换由 GWT 完成。J2ObjC 并不转换 UI 代码,这部分需要针对不同平台分别开发。

我们在 2012 年发布了 J2ObjC 的 alpha 版本,并公布了部分实现细节。J2ObjC 的逐渐发展到稳定版 1.0 版本,并应用于开发 Inbox、Calendar、Docs、Sheets、Slides 和 Google My Business 等 Google 产品的 iOS 版本。同时,J2ObjC 由 Java 6 升级到 Java 7 和 Java 8,该项目的 Google 工程师 Tom Ball 表示这是为了“支持当前和过去主流的 Java、iOS 和 Xcode 发布版本”。此外,J2ObjC 集成了 JUnit、Mockito、Gradle 和 Maven,并支持通过原生方法将 Objective-C 代码嵌入 Java 代码

在被问到 J2ObjC 对 Java 8 的支持程度时,Ball 告诉我们:

这取决于怎么定义"Java 8"。:-) 我们加入了对 Java 8 一些语言特性的支持,如 lambda 表达式和方法索引。但是因为我们的 JRE 运行时基于 Android 的 libcore 库,所以目前还不支持任何 Java 8 引入的 API。我们计划与 libcore 团队定期同步,这样他们添加的所有 Java 8 支持都能很快地被引入到 J2ObjC 的运行时。

谈及未来发展,Ball 补充道:

J2ObjC 主要是一个构建工具,因此会根据使用该工具的应用开发人员的需求来确定未来计划。我们现在了解到的需求是,他们希望我们持续且快速地支持 iOS 新特性、优化 Swift 互操作性、支持 Java 8 接口、提供更好的工具集成、减少构建次数。作为编译器开发工程师,我们也会专注于优化生成的代码和快速修复 bug。

J2ObjC 使用 Apache License 2.0 许可协议。

查看英文原文 Google’s J2ObjC 1.0 Translates Java into Objective-C


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2016-02-16 18:009039

评论

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

自然语言处理_AI文本翻译

DS小龙哥

三周年连更

Go语言开发小技巧&易错点100例(七)

海风极客

三周年连更

为什么有些前端一直用 div 当按钮,而不是用 button?

海拥(haiyong.site)

三周年连更

如何用 python 设计一个兑奖程序?

海拥(haiyong.site)

三周年连更

高级视频编码器性能对比(H265、VP9、AV1)

轻口味

音视频 视频编解码 三周年连更

appuploader   iOS 应用自动发布

雪奈椰子

Python语法基础快速回顾

timerring

Python

Mac M1 安装SD(上)

IT蜗壳-Tango

三周年连更

2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位上的数字。 1 <= n <=

福大大架构师每日一题

golang 算法 rust 福大大

数据湖技术Iceberg和Hudi的比较

漫长的白日梦

数据湖 iceberg Hudi

Java HashMap 的常用方法,Java工程师必知!

Java架构历程

Java hashmap 三周年连更

通过ChatGPT来写论文

石云升

AIGC ChatGPT 三周年连更

ssh 连接Linux确实很安全,这6种身份验证方法很强!

wljslmz

Linux SSH 三周年连更

2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个正整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 输入:n = 20。 输出:19。

福大大架构师每日一题

Go 算法 rust 福大大

Angular 服务器端渲染两个相关的 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN

Jerry Wang

前端开发 angular 三周年连更

Matlab实现Non-Local Means算法

袁袁袁袁满

三周年连更

一文看懂:性能监控神器JavaMelody

后台技术汇

三周年连更

Go语言开发小技巧&易错点100例(六)

海风极客

三周年连更

徒手体验卷积运算的全过程 | 社区征文

迷彩

Python 深度学习 卷积 三周年征文 三周年连更

我理解的声明式 vs 命令式

agnostic

声明式

Golden Gate(GGX)开发者见解与创新DeFi应用

股市老人

手撕代码系列(四)

控心つcrazy

JavaScript 面试 前端面试题 ES6基础知识点总结

OpenHarmony应用TS&JS编程指南

鸿蒙之旅

OpenHarmony 三周年连更

ChatGPT 将如何影响编程行业?程序员是被将被替代? | 社区征文

格斗家不爱在外太空沉思

ChatGPT 三周年征文

python采集评论区内容

BROKEN

三周年连更

Matlab凸优化算法

袁袁袁袁满

三周年连更

【Python实战】Python采集情感音频

BROKEN

三周年连更

Java Collection与Map详解

timerring

Java

分布式事务的21种武器 - 3

俞凡

架构 云原生

区块链技术是什么?比特币又是什么?硕士是区块链研究方向,就业怎么办?

千与编程

区块链+ 研读版

Haproxy进阶管理:命令行控制后端节点上下线

乌龟哥哥

三周年连更

Google发布J2ObjC 1.0:将Java转换为Objective-C_Java_Abel Avram_InfoQ精选文章