芯片技术的发展使得超微超小的处理器一样具有了强劲的性能。从手机的发展历程来看,几年前手机还是单纯的的拨接电话的功能,现在的手机已经可以上网、看电影短片。
我个人的观点,基于移动设备的应用将会越来越多,而且会从娱乐领域深入到办公、生活领域。
要满足这样的需求,除了硬件支持,软件也是不可缺少的。
软件包括什么?操作系统和应用软件。现在用在移动设备上的操作系统很多,手机上有brew、symbian;pda上有palm os,linux,windows ce。操作系统的不统一,使得应用软件的开发部署也是多种多样。
有很多公司在想办法解决这种平台不统一、软件移植性差、开发资源浪费的情况。java是一个很好的解决方案。
sun公司的j2me体系是专门针对移动设备的,他的体系结构图如下:
根据不同的硬件平台,j2me虚拟机分为CLDC/MIDP和CDC两种,分别支持不同的API。CLDC/MIDP主要针对手机这样内存小、处理器相对较弱的平台;CDC针对PDA那样硬件配置相对较高的平台。
虽然SUN公司制订了这样一个标准体系,对于程序开发人员来说,要想完全熟悉他,还是很困难的,因为不同的厂商会用不同的手段来实现它。打个比方,交通法规是一种标准,学过驾照的人知道,理论知识的那本书内容并不多,也不难学。但是等你正式驾车上路,就不容易了,不管你走在哪条路上,你都要了解标志、标线、信号灯状况,否则就容易出事故。
要想从事移动设备开发,我想最好遵循下面的几个步骤:
1. 熟悉j2me的体系架构和标准。
2. 选择你要面对的硬件平台厂商。比如nokia、palm、siemens,因为不同的厂商会有不同虚拟机、开发工具和API。
3. 选择相应的开发工具和API。
4. 进行开发。
下面我针对具体的厂商、平台,做更详细的介绍。
一. java手机。现在生产的具有java功能的手机,不管是哪个厂商生产的,都自带了JVM,程序开发人员不需要考虑这一部分,而且厂家也不会轻易把软件安装功能放开。所以,只要根据品牌选择特定的开发工具包就可以了。
nokia、siemens、motorola、ericsson都有很完善的工具包,而且都是免费的,在他们的网站上就可以下载。
需要注意的是,即使是同一个厂家的不同型号的手机,所使用的jvm,或者支持的api也不一定相同。所以选择了工具包后,还要选择特定型号的api。nokia就分了40和60系列的开发包。
二. windows mobile(CE)上的java开发。(下面简称PPC)
sun官方到目前为止,还没有发布针对这一平台的jvm。
我本人有一个ppc,我曾经为用不上java程序而烦恼,IBM帮我解决了这个难题。
IBM的j2me体系架构叫做Workplace Client Technology, Micro Edition and Java™ 2 Micro Edition。它包括三个部分:
1. WebSphere Everyplace Micro Environment,java的runtime,包括两种平台的虚拟机,分别是CLDC/MIDP和CDC,根据不同的平台,下载对应的jvm。
2. WebSphere Studio Device Developer,java的开发工具包,相当于j2me的WTK。
3. Micro Environment Toolkit for WebSphere Studio,也是java的开发工具包,只不过这一部分,专门是针对j2ee部署的。当你的应用程序需要和j2ee服务器交互,或者需要同web service交互时,就需要用它来开发。
有关介绍可以在http://www-306.ibm.com/software/wireless/wctme/j2me.html找到,可惜的是这一部分的介绍只有英文的。
三. palm设备上的java开发。
palm公司一分为二,把硬件和操作系统分了开来。软件这个公司做的一直很好,支持的开发平台比较多,java、c早就有了,现在又和开源组织合作,打算把linux引到palm平台上来。
我刚打算买掌上电脑时,也研究过一段时间的palm,java支持也是我考虑的因素之一。我了解两种palm上的java支持方案。
1. superwaba,较早的一种。可以在www.superwaba.com.br上下载到palm平台的jvm和开发工具包。他有完善的支持和开发文档,学习和开发都很容易上手,也有丰富的应用软件资源。但是他有一个缺点,他和j2me不是100%的兼容。
2. Workplace Client Technology, Micro Edition and Java™ 2 Micro Edition,ibm的j2me体系架构的palm支持部分,可以在ibm网站下下载到jvm和开发工具包,网址见上面。