国际:JavaFX 1.1 发布,技术大牛之初体验

ZDNet软件频道 时间:2009-02-17 作者: | CSDN  共有评论 我要评论()
本文关键词:软件
【CSDN 2月17日 国际观点】本文来自Osvaldo Pinali Doederlein在java.net的科技博客,全文内容如下:  下载,如果你已经有了NetBeans 6.5,那你只需要检测到升级补丁即可(下载量为53Mb)。

  【CSDN 2月17日 国际观点】本文来自Osvaldo Pinali Doederlein在java.net的科技博客,全文内容如下:

  下载,如果你已经有了NetBeans 6.5,那你只需要检测到升级补丁即可(下载量为53Mb)。

  首先,谈一下从Release Notes和一些调查中得到的对JavaFX 1.1的主要印象:

  1, JavaFX Mobile的官方支持:“官方”一词,我想Sun指的是v1.0 品质。然而这仍不算是个真正的FCS,因为只有在真正的设备上运行runtime时它才是。

  2, 一些JavaFX Script语言性能的提升;

  3, 语言性能和稳定性的提升。在release notes中没有bug清单,所以你必须在JIRA中查询,JavaFX 1.1发布的codename是Franca,修补了148个补丁(增加了7个未修复的)。尽管其中的一些补丁不足为题(如说明文档、凌乱的教程)但从1.0.1到JavaFX 1.1发布的两个月的时间内,修补的bug数量仍然相当可观。

  4, JavaFX桌面的全屏模式。看起来这是1.0版本的重要特性,但是被差劲的说明文档和几个bugs给拖累了。

  5, javafx.fxd包,之前是一个扩展的lib,现已添加到core中(常规文档)。除了FXDLoader,你还可以克隆SceneGraph项目(使用Duplicator类)而且不需要配置库(尽管这可能比你的applet还大)。我仍在等待更加常规的克隆特性。

  6, 升级的文档(这仍是JavaFX的一个弱点)。我注意到升级的javadocs,但是Language Reference看起来根本就没有升级。尽管JavaFX的指导材料越来越多,但我还是倾向于好的整齐的官方指导。

  提升和兼容性

  唯一的语言变化看起来好像在typesystem:JavaFX Script现在支持所有Java基本类型(Java primitive types),像通常的大写名字如Long,尽管编译器会尽可能地避免将对象封装。如果硬要说的话,好的一点是JavaFX更加像Java了,高效、与大量Java代码集成整合。

  这种改变的另一个方面是JavaFX的Number类型变成了float而不是double。这是一个不错的改变,对FP来说,floats在JavaFX(GUI &graphics)的领域内更加流行:尽管你在一些地方比如transforms中会用到double,但大部分的toolkits,乃至3D APIs包括Java2D,都使用float精密度来定义像屏幕坐标之类的东西。在JavaFX中,有时我们不得不使用double精度的Number来定义更大的整数(比如毫秒级时间间隔)。

  但这种改变也会带来代码的破坏。拿我的JavaFX Balls代码来说,当我运行到新的runtime时,看起来工作了但是FPS计数器疯了,报告2147483647帧!!(这是0x7FFFFFFF)。我轻松地修改了这个问题:我将couple变量声明从Number改到了Long。

  这个问题对于来自Sun的开发工具来说有点让人吃惊,而且你永远都会期望向后兼容。但是很高兴的是Sun总是在修复他自己操之过急做出的错误决定,尤其是许多终端的JavaFX设备还没有被开发出来。运行时间可以执行,无论是1.0.1还是1.1,都配置在插件的cache中,每个applete/JAWS应用都使用为之构建的runtime,所以现有的JavaFX applets不会被打破,只是它们不能够自动运行在新的已经升级的runtime上而已。

  性能

  从我开发的产品JavaFX Balls来看,JavaFX 1.1与之前的版本性能几乎一样,更多数量的balls的问题仍然存在。而且这个问题看来不会在版本1.1中迅速修复,我预计最早也会在v1.5 (Marina)中得到显著改善,因为整个Scenario runtime正在加强,而且,JavaFX将会获取到一整包的‘native’ (SceneGraph-based)组件,增加了V-sync动画制作和其他重要的提升。

  我没有做更多的测试,JavaFX Balls被局限在JavaFX-centric的基准点,原因之一是这甚至不会抓取Effects框架。而且现在JDK 6u14-ea-b01具有6u12+特性,被JavaFX 1.1和G1 collector获取。早在JDK 7 builds中我就测试过G1,很慢很崩溃,所以我并不看好6u14-ea-b01版本会完美。

  JavaFX Mobile

  移动程序的开发的确需要很大的提升。我已经将JavaFX Balls装到JavaFX Mobile中,结果很恐怖而且在beta仿真器中极不稳定。另外的问题是:我必须改变VK_STAR to VK_ASTERISK;尽管代码仍旧被编译,但之前的代码不再与仿真器的‘*’按钮所匹配。

  Sun的官网公布了JavaFX Mobile的一些支持伙伴,在手持设备方面,仅有LG和SonyEricsson,我希望有更多的这方面的合作伙伴。我的下一个手机将会安装最新最好的Java,包括JavaFX Mobile。

  不好的一点是mobile runtime目前并不是在所有现有的设备上都能够安装后就可用,也许不久后这个问题就可以解决。Danny说“你将在JavaOne 2009上看到更多JavaFX Mobile可以运行的手持设备,年底的时候还会有更多的手机。”(译/王玉磊)

  (责编/杨东杰)

  发表评论0条】


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134