随着手机功能的不断提高,“新一代手机Java”的身影也越来越清楚,比如新标准API集“MSA for CLDC”的制定,Java运行环境由CLDC向CDC过渡,对多任务功能的支持等。在这种背景下,Java的固有优势,即面向对象特性将得到有效发挥。就手机Java技术的现状和今后的发展,记者日前采访了日本Sun负责嵌入Java领域的高级经理门间纯一(Mobile&Embedded Systems)。
——请您谈谈手机Java技术的开发蓝图。将按照什么样的路线从CLDC(connected limited device configuration)向CDC(connected device configuration)过渡?
门间:在Java ME CLDC/MIDP(mobile information device profile)中,由于各通信运营商各自为政,结果产生了多种各自不尽相同的自主标准,对此应有所反思。作为JTWI(JSR 185: Java Technology for the wireless industry),2003年确定了API集。沃达丰3G等现已开始采用JTWI。
将来,作为JTWI的扩展,MSA for CLDC(JSR 248: mobile service architecture for CLDC)将会亮相。不过,它不会全部配备MSA for CLDC的API集,也许会以“JTWI Plus”的形式配备子集。比如,没有蓝牙功能的手机也许会取消相应的API。
——高端和低端手机会分别使用API集吗?
门间:MSA for CLDC的地位是中低端手机。高端手机方面将采用MSA for CDC(JSR 249: mobile service architecture for CDC)。不过,目前仍有很多部分尚未确定。
——MSA for CDC包含MSA for CLDC吗?
门间:对。MSA for CLDC上的应用程序均可在MSA for CDC上运行。也就是说,能够运行现有内容。除此之外,在MSA for CDC中还将追加调用本机库的JNI(Java native interface)和运程设备治理等娱乐功能。
以上就是从JSR(Java specification request,Java规范请求)所能看到的手机Java开发蓝图。
“*Project”是以use case(用户个案)为重的方案
——由NTT DoCoMo和Sun共同推进的“*(Star) Project”处于什么地位?
门间:*(Star) Project的目的是吸收MIDP和Doja(由NTT DoCoMo制定的“i-appli”标准)的“优点”。它采取的方案是,首先考虑use case(记录了每个用户的目标需求),然后再逐步找出用户需求。不像JSR那样先定义再使用API。
正在研究哪些use case呢?为了不向竞争对手泄漏我们的想法,现在还不能讲。不过,从技术方案上来说,应该说已经取得了一定的进展。
——芬兰诺基亚对CDC非常热心。并且已经公布将在手机平台“Series 60”上配备CDC(发布资料)。
门间:诺基亚有可能采用自主标准。因为MSA for CDC赶不及了。
手机配备CDC,将会产生哪些变化?
——手机配备CDC,将会产生哪些变化?CDC将会配备全套的Java虚拟机。
门间:其实,就Java虚拟机来说,CLDC和CDC差别并不太大。
CLDC的Java虚拟机和全套的Java虚拟机标准的差别在于是否调用预验证(字节代码的预先验证)的内容(=Java应用程序)。全套的Java虚拟机在执行代码时进行字节代码验证,而CLDC则减轻了这种负担。
作为CLDC1.1(JSR 139: connected limited device configuration 1.1,2003年3月公布最终版本),在CLDC的Java虚拟机中还加入了错误处理和Weak Reference(注:也称为弱参考。在需要实现选项缓冲时使用)等功能(注:此外还追加了浮点运算功能)。作为Java虚拟机功能来说,和全套的Java已经没有任何区别。
说到CDC的变化,就是JNI和安全性。作为JNI,就是能由Java程序调用本地程序。在KVM(Java ME CLDC的Java虚拟机)中,甚至都不能“请求”本地程序。
安全功能在由JDK1.1过渡到JDK1.2时同样也有变化。尽管只是沙箱模型,但却能够进行更细致的安全治理。
——比如,是否可以说将能够使用安全功能,来运行可调用手机OS功能的程序?
门间:对。假如使用JNI和安全功能,通过访问设备驱动程序,就能生成可直接操作相机等硬件的Java程序,也可下载使用。
在CLDC和CDC中,多任务虚拟机的实现方式有所不同
——请您谈谈今后即将亮相的多任务虚拟机?
门间:今天的手机Java同时仅运行一个程序,今后将会同时运行多个程序。比如,起动Java编写的邮件功能后,还可在后台利用Java播放器听音乐。
在CLDC和CDC中分别采取了不同的实现方式。CLDC版的多任务虚拟机设想在“Symbian OS”这样的非多任务OS上使用,在一个VM instance上对多个Java应用程序进行治理。而CLDC版多任务虚拟机已经作为Sun手机Java运行环境“Sun Java Wireless Client”的一部分、即“CLDC HotSpot Implementation”推出来。该产品主要面向终端厂商,估计尚无嵌入手机最终产品的先例。