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
中文翻译:http://www.infoq.com/cn/news/2016/02/j2objc