2005,J2ME引领移动开发

文章摘要
    2005年对计算机通信行业的开发者和从业者来说有太多的期待,而最值得期待的就是被称之为纯技术驱动的第三代移动通信系统的商用。姑且不谈纯技术驱动有没有市场,能不能成功,但是3G的商用必定会给移动开发插上飞翔的翅膀,笔者认为J2ME将是移动开发这场竞赛的领跑者。本文将从总体介绍J2ME的体系结构和主要内容,同时谈谈J2ME同其他移动开发平台的比较。


J2ME概述
     2004年,移动开发恐怕成为了最时髦的字眼。在CSDN的最近一份调查显示,有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪。J2ME是嵌入式/移动应用平台的王者,Linux和WinCE分列二、三位。Nokia等厂商力推的Symbian平台目前开发者占有率尚未达到满意水平,考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机),Symbian、WinCE系列在移动平台上会是竞争的主要两方。如果厂商能在标准实现上做得更加规范,则J2ME的跨平台特性会发挥得更加淋漓尽致,继续保有王者地位。

    J2ME是SUN公司推出的针对嵌入式消费类电子产品的开发平台,与J2SE和J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的JSR并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保兼容性。比如MIDP2.0规范就是在JSR118中制定的。J2ME平台的形成颇有些Java技术回归起点的味道,我们知道Java本来就是针对消费类电子产品而生的一门编程语言,而后才慢慢发展为一门技术、一个平台的。

    谈到J2ME我们通常都会说到一个词KVM,而这可以认为是J2ME的起源,KVM之父Antero Taivalsaari本来在SUN公司参与一个名叫Spotless的研究型项目,由于他曾经有着在世界知名电信设备制造商工作的经历,这使得他萌发了在移动终端设备,比如手机,上实现java虚拟机的想法,而这得到了经理的支持。随后AT做为领导者带领团队开发了能够在手机这样的移动终端设备上运行的虚拟机和CLDC核心类库。慢慢的J2ME浮出了水面。

    J2ME的设计应该说是众多顶级工程师的结晶,她被设计的非常灵活。在J2ME中非常重要的两个概念是Configuration和Profile。Configuration是支持最大范围设备的最小的平台,在这一层还包括了Java虚拟机。Profile是针对特定的设备提供相应的开发包集合。另外针对某些设备特有的功能特性,J2ME还推出了Optional Profile的概念。比如Mobile Media API。


 

 

 

 

 

 

 

 

 

    在J2ME平台中有两个主要的Configuration,一个是Connected Limited Device Configuration,一个是Connected Device Configuration。区分的标准则是按照设备的处理器、内存、联网能力等硬件特性。由于这些规范制定比较早,而现在的移动终端设备的处理和存储能力都有了质的飞跃。因此不再列出区分的标准,因为那已经没有了意义,你甚至会认为那是错误的。目前J2ME的应用主要还是基于CLDC的,因此本文将主要向读者介绍基于CLDC的J2ME平台。不过笔者在两家世界著名电信设备商参加的开发项目表明,基于CDC的应用将慢慢占领主流市场,因为CDC提供了更强大的类库支持。

    Mobile information Device Profile位于CLDC之上,在CLDC规范制定出来后并没有引起开发者的广泛注意,市场也没有因此而发生变化。原因是CLDC中并没有提供图形用户界面编程的接口,这样应用程序就没有和用户交互的能力了。MIDP1.0的推出受到了开发者的广泛关注,在MIDP1.0中提出了一种新的应用程序模型MIDlet,开发者还可以用MIDP中提供的javax.microedtion.lcdui包开发图形用户界面程序,用MIDP1.0的子系统Record Management System进行数据的持久性操作,借助于CLDC中提供的Generic Connection Framework的联网能力可以通过HTTP协议访问Web服务器,J2ME几乎无所不能。然而一些问题也慢慢暴露出来,由于MIDP的规范制定得过于宽泛、提供的功能有限,导致各个厂商在实现MIDP的时候在功能特性上存在很多差异,比如应用程序的大小、RMS的存储空间、并行存在的线程数量等等。更糟糕的是各个厂商还实现了很多J2ME之外的功能,例如Nokia UI API中提供了声音处理以及全屏等功能,这样破坏了Java跨平台的特性,如果你得程序中应用了Nokia UI API的话,那么它就不能移植到Motorola的手机设备上了。为了弥补这些不足,SUN在随后的MIDP2.0中推出了MMAPI的一个子集来解决声音处理的不足,并设计了一个独立的游戏开发包javax.microedition.lcdui.game用于游戏开发,还对push、socket联网等特性提供了支持。在JSR185中更是推出Java Technology for the Wireless Industry使得规范更加严格,提高了应用程序的兼容性。不仅如此,J2ME中的可选包更是各显神通,Bluetooth API,SIP API for J2ME和Mobile 3D Graphics都提供了非常强大的功能。
 

J2ME的发展与竞争
    软件环境飞速发展的同时,J2ME平台的硬件环境和市场同样越来越成熟。Java手机的数量在成倍增长,预计2006年java手机数量有望突破6亿部。硬件中加快集成Java预计将进一步促进Java在市场中的普及,J2ME将成为事实上的标准。到2006年,Java手机预计将占全部手机出货量的83%。与此同时移动增值业务的突飞猛进大大的推动了J2ME技术的发展,预计到2008年全球与Java相关的移动增值业务市场总值将达到147亿美元。

    2004年微软公司开始逐渐进入移动通信行业,并与美国的电信设备制造商Motorola推出内置微软SmartPhone的手机,打入手机市场。另外高通的BREW和Nokia的Symbian也一直认为是J2ME的竞争对手。不过目前他们的市场占有量都还很难和J2ME平台相比。BREW的兼容性差是最大的缺点,2004年中国联通不甘心受制于高通的限制,而与SUN公司联手打造了UniJa平台。笔者认为微软提供的Mobile Windows和Nokia的Symbian平台将是J2ME最大的竞争对手,Symbian是目前最成熟的手机操作系统,通过使用Nokia提供的SDK,开发者可以使用Java或者C/C++进行应用程序的开发,遗憾的是Symbian的开发资料相对贫乏,C++语言的开发效率比Java要低 ,这些都给基于Symbian操作系统的C++开发的推广带来了不利的影响。国外的Motorola和国内的多普达等厂商陆续推出了基于微软SmartPhone操作系统的手机,表明了微软进军移动开发市场的野心,通过使用微软提供的SDK,开发者可以在手机上使用Compact .Net Framework进行高效的开发,当然也可以使用C/C++。然而毕竟微软刚刚进入移动开发市场,市场占有率还不高。

    J2ME平台是开放的,目前已经占领了绝对份额的市场。我们有理由相信J2ME将继续成为移动开发的领导力量。


结束语
    走过弥漫着硝烟的市场、信步在大自然的怀抱的时候才可以让我们开发者更加清醒。无论鹿死谁手,开发者始终应该保持的是那份对技术务实的执著,摒弃那份浮躁与不安。2005年是移动开发走向成熟的一年,J2ME将继续领跑。让我们拭目以待!


作者简介
    詹建飞,北京邮电大学信号与信息处理专业硕士研究生,从事Java技术的研究与开发三年。曾在Motorola(中国)电子有限公司担任软件工程师开发基于Java的手机平台JUIX项目。2004年8月创办J2ME开发网(http://www.j2medev.com)。电子信箱 eric.zhan@263.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值