灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > Android资源 > 主题资源 >

前Sun开发人员为Android,iOS等其他移动平台提供

教程来源:www.lt163.com     点击数:     更新时间:2018-01-11 23:38

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,摄像头,音频等等?

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行