前Sun开发人员为Android,iOS等其他移动平台提供JAVA的WORA支持

标签: sun 开发 android | 发表时间:2012-09-24 18:02 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

2012年,在以色列出现了一个名为 Codename one的公司,该公司旨在生成一种新的Java SDK,该SDK将允许Java开发人员通过一个单一的代码库就能为包括iOS,Android,BlackBerry和Windows Phone等一系列的移动设备编写本地应用。对于iOS,Codename one通过自己的云服务器先将Java代码转换成C或者Objective C代码,然后再将转换后的源代码编译成本地应用程序。这使得利用Java来编写iTunes兼容应用成为可能。

Codename one的两大创始人分别是Chen Fishbein和Shai Almog。Fishbein是Java ME标准用户界面工具——Lightweight User Interface ToolKit(LWUIT)的创始人和首席架构师,并且他还开发了当下最成功的Java ME 开发工具之一的Sprint Wireless ToolKit。

该平台现正处于Beta测试阶段,InfoQ下载后进行了测试。这个过程花费了很长的时间。为了构建代码,需要将他们基于云服务的网址添加到代码库中。代码将被上传到该服务器并进行编译,然后生成一个二维码(QR code),通过该二维码你可以下载并安装最终的程序到设备中。出于好奇,为了更多的了解该公司,我们采访到了该公司的联合创始人兼CEO Shai Almog先生,询问了一些关于他们最新发布对Windows Phone提供支持的事宜。

InfoQ:你好Shai,这个想法由来已久了。这真的是一个全平台通用的Java环境吗?

Almog:Java不仅仅是一个虚拟机,它也是一个统一的堆栈,一系列的工具集,实际上更是一个完整的Java生态圈。Java的意义在于它的一触即发。即便是Android,也需要一套不同的流程,一套不同的工具集以及一个针对不同配置的的模拟器。这样以来,我们反而失去了“一处编译,到处运行(WORA,Write Once Run Anywhere)”的优势。

InfoQ:对于不同的环境需要不同的修改吗?

Almog:不完全是,Codename one为不同的平台提供统一的API支持,并将它们直接集成到Java环境中,通过一个统一的环境来解决所有不同的细节问题。

InfoQ:是否为每一个平台都配置了相应的JVM?

Almog:不,这取决于平台。对于Android,我们主要还是使用Dalvik虚拟机。但是对于没有Java环境的iOS平台,我们就将classes文件翻译成Objective C的代码,并且使用Boehm的垃圾回收器。该回收器能运行Java代码,但他并不是真正意义上的Java虚拟机。在RIM和其他平台上,我们通过平台上现有的有限Java子集特性来进行编译。这样就可以获得跟Java一样的WORA体验了。

InfoQ:你们试图在每个版本的发布中都对所有平台的所有特性都进行支持吗?

Almog:我们在尽力,但由于底层设备的变化,通常情况下很难达到。SQL就是一个很好的例子,开发者都想使用它,但是一些低端的设备并不支持。开发者可以查看每个特定环境下的支持情况。我们的策略是提供一个尽量通用的集合,并尽可能地完善它。

InfoQ:我需要一些真实的设备来进行开发吗?

Almog:理论上是不需要,但是你不能仅仅通过鼠标来体验应用程序;你需要真实的拿着你的手机并且感受它来获得准确而真实的性能和使用感受。我们就因为一些版本上的细微变化而使用不同的iPad。

InfoQ:对于这么多不同的Android版本,它实现起来应该比较困难吧?

Almog:实际上iPhone更困难。Apple在不断的变化,在4.2上运行的方式可能在4.3上就是另外一种完全不同的做法。此时你会发现一切都运行不起来了。Android虽然有很多的版本,但是他们通常很少会有破坏性的改变,所以,差异并不是很大。

InfoQ:应用程序的使用者需要安装什么特定的程序吗?

Almog:不需要,一切均包含在应用中。这可以帮助我们保持稳定性我们保持的很稳定的原因是因为我们不支持一些移动的虚拟机目标。不同版本的设备差异化很大,但是我们只关注各个版本之间的兼容性问题,如此一来,开发者们也不需要去关注它了。

InfoQ:对于Java开发者来说,学习曲线是怎样的?

Almog:这其实相当的简单。对于大部分的Swing开发者来说,跟基于XML的Android比起来,他更像是Swing的开发方式。你可以使用内置的调试器,这里没有APK文件,你也不需要等待模拟器启动,我们的模拟器在每次运行的时候就能立刻启动起来。

InfoQ:有些人说Swing有点呆滞,并没有原生Windows应用的那种用户体验。你们的平台有什么好的做法来使他们看起来跟时尚一些吗?

Almog:Swing的界面是很难定制的,由于它是和JDK的版本进行绑定的,所以不能在外观和体验上跟操作系统保持一致。Codename One允许在组件模型上做深度的风格和主题定制,而且因为我们是SaaS和OpenSource的成员,我们可以不通过Sun/Oracle缓慢的升级流程,而独自在应用程序的体验上保持不断更新。这样就能保证一个时尚的用户体验。

InfoQ:对3D图像的支持如何?

Almog:很遗憾,对于这一点,我们目前还不支持游戏类的开发。但是相信在未来可能有所改观。

InfoQ:那对于那些设备特定特性的支持呢,比如I/O,GPS,摄像头,音频等等?

Almog:我们都支持这些基本的API,我们正在开发手势操作,并且现在有些已经可以支持了,但是如果你需要一些我们并不支持的特性,那么我们可以给你提供本地集成。你可以定义接口,然后我们的插件会为你的设备生成本地代码,这样你就可以调用那些本地功能了。

InfoQ:产品是如何收费的?

Almog:基本版是免费的,而且我们会一直这么做下去。回报社区是非常重要的。每个月我们会为除了iOS以外的其他平台提供100次的构建服务。如果你是本地构建的话,你可以随意构建,但是我们的构建服务器限制你只能进行100次构建。iOS平台被我们限制成一个月只能进行5次构建,因为对于我们来说,每一次的构建代价都是相当昂贵的。你还可以每个月花费9美元,以获得不限次数的构建。我们还为一些额外的特性提供了更多的定价方案,比如宕机保护。

InfoQ:你们的文档和支持做的怎么样?

Almog:《开发指南》是我们邀请社区帮忙编写的一个100多页的Google文档。我们也维护了一份详细的JavaDoc并且花费了大量的时间在维护Google Group邮件列表。

InfoQ:看起来你们好像在做一件伟大的事情啊。那你们下一步有什么打算呢?

Almog:马上就会有很多好消息了。到九月下旬的时候,对Windows 设备的支持将会开放。届时我们将添加应用内的支付功能,以及针对客户端和模拟器开放更高级的API,提供给开发者更多的模版。而且我们刚刚公布了同Vserv的合伙计划,这样开发者在不改变任何代码的情况就能添加广告进自己的程序。

随着支持多移动平台的公司越来越多,Codename One可以帮助那些开发更多新应用的公司提高市场占有率和利润。该SDK可以在 其官网上进行下载。

查看英文原文: Ex Sun Developers Bring WORA Java Support to Android, iOS, and Other Mobile Platforms

相关 [sun 开发 android] 推荐:

前Sun开发人员为Android,iOS等其他移动平台提供JAVA的WORA支持

- - InfoQ cn
2012年,在以色列出现了一个名为 Codename one的公司,该公司旨在生成一种新的Java SDK,该SDK将允许Java开发人员通过一个单一的代码库就能为包括iOS,Android,BlackBerry和Windows Phone等一系列的移动设备编写本地应用. 对于iOS,Codename one通过自己的云服务器先将Java代码转换成C或者Objective C代码,然后再将转换后的源代码编译成本地应用程序.

Oracle vs. Google 訴訟最新發展,Sun CEO 曾公開支持 Android

- daviddu - Android 資訊雜誌 android-hk.com
爭議多時的 Android 系統侵犯 Java 版權一案,近日再次出現突破性的發展. 話說於 2007 年 Android 面世的時候,同時 Java 還是屬於 Sun Microsystems 的產品. Sun 的 CEO Jonathan Schwartz 在當時公開於網誌中祝賀 Android 系統的誕生,而且還表示 Java 能成為手機操作系統的開發平台感到十分高興.

Sun JDK 1.6内存管理

- 小丑鱼 - 淘宝JAVA中间件团队博客
分为使用篇、调优篇和实现篇三个部分,使用篇为填鸭式,调优篇为pattern式,实现篇为启发式,三个PPT的目标为:. 1.掌握Sun JDK的内存区域的划分;. 2.掌握Sun JDK垃圾收集器的使用方法和触发时机;. 4.掌握一些基本的GC调优的方法;. 5.了解自动内存管理的常见实现方法,以及Sun JDK所做的优化.

Android开发Tips

- - CSDN博客推荐文章
欢迎Follow我的 GitHub, 关注我的 CSDN.. 介绍一些, 在Android开发中, 会经常使用的小知识点.. submodule与git可以保持实时同步. 导入, 路径多于一个, 前面不添加冒号(:).. 使用PackageManager.. // 检查App是否安装 private boolean appInstalledOrNot(String uri) {.

故事十八 STORY 18 by Sun Long

- Yao - Jia Za Zhi
假杂志邀请来讲第十八个故事的又是一位宁波的摄影师孙龙,因为要将的系列作品与大海相关,更是备感亲切. 孙龙的“海岸线”,与张晓在路上的、旁观的状态不一样,更多是一种身在其中的眷恋与深情,主观的情绪在一些细枝末节上若隐若显. 对于从小长大生活的地方,每个人都在自己的心里会藏着一些秘密、情绪,或者不露声色的痕迹.

前Sun CEO:Android无需获Java API许可

- - 业界
北京时间4月27日,据国外媒体 CNET报道,前Sun首席执行官Jonathan Schwartz周四在甲骨文诉谷歌侵权案中作证时称,Java API不应被视为专利或受Sun的保护,只要谷歌不使用Java这个词. Schwartz解释开放软件的性质时表示:“这些都是开放的API,我们想让更多的人使用,我们希望建起最大的帐篷,邀请尽可能多的人来.

Android 开发者调查

- - 爱范儿 · Beats of Bits
Startup 是为 Android 开发者提供盈利模式的一个公司. Android 开发者只要在应用上推广 Startup 服务,并且为网站带去流量,就可以得到网站给予的补贴. 今年 3 月的时候,Startup 网站对 Android 开发者进行了一次调查. 现在,他们将调查的结果制成了信息图,并 发布在网站之上.

Android敏捷开发指南

- - 互联网的那点事
本文紧密结合移动开发方法与技术,围绕Android平台的开发探讨提供更高质量移动产品的解决方案. 作者中分析了移动开发中常见的问题,从两方面阐述了ThoughtWorks使用的测试开发方案和相应的架构方法与常用工具应用,并进一步阐述了为移动开发流程所提供的持续发布方案. 随着云计算、移动互联等一系列新技术概念的崛起,新一轮的IT经济正在不断扩大发展.

Android应用开发资源

- - InfoQ cn
Android应用设计和开发人员现在可以参考由Android用户体验(UX)团队官方发布的 Android设计指南. 该指南提供了开发者应该遵循的基本原则,并列出了很多细节指导,涉及 设备与显示、 主题、 触控交互、 度量与栅格、 排版、 色彩、 图标设计,以及如何 编写用户交互界面的提示语.

Android 开发视频推荐

- - 大猫の意淫筆記
作为 Android 死忠粉,总是想自己来两手,无奈没摸过后台开发,面向的唯一对象就是马总. 花了个把星期入个门,发现还是挺好玩的. 市面上的 Android 入门书有2个主要问题,一个是都要求有 Java 基础,另一个是跟不上 Android 版本更新.所以并不推荐买书学习. 斯坦福大学公开课:编程方法学.