移动端开发(mobile
phone development)
手机开发也称为移动开发,或叫做移动化开发。是指以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,由于这些随身设备基本都采用无线上网的方式,因此,业内也将手机开发称作为无线开发。
3G时代的到来,使得手机应用日渐热门,由于手机携带方便,并且是生活必带随身用品,而且信号覆盖广,操作便捷,使得人们对其给予了越来越高的期望。大家期待各种常见的或是重要的信息化系统、互联网应用可以被移植到手机上同步使用,使用户无论在何时何地,都可以连线精彩的网络世界,登录信息系统。为此,如何进行手机开发,如何在手机上催生各种多姿多彩的精彩应用,日渐成为整个ICT产业关注的焦点。
由于整个市场还处于发轫阶段,目前大众对于手机应用了解并不很多,但其实在这个市场早已是暗流涌动,春潮泛滥,各种各样有趣的应用层出不穷,新奇创意不断,大量原来PC和互联网上的信息化应用、互联网应用均已出现在手机平台上,一些前所未见的新奇应用也开始出现,并日渐增多。下文将介绍一些目前市场上较为流行的精彩应用。
![](images/mobdev-bk1.jpg)
1、 手机操作系统很多:Android,Mac OS,Symbian S60, UIQ, Windows
Mobile, Linux, Brew、 Blackberry……,要想克服不同手机平台的差异,实现应用的统一覆盖异常困难;
2、手机开发很难:开发人员稀缺,成本太高,进度太慢,无线网络太复杂,门槛障碍太多……;
3、软件或互联网公司如果为了实现移动应用,而把精力投入到并非自己所长的领域,无疑将会得不偿失。
4、行业需要专业的角色,来解决开发应用过程中的各种难题,将复杂难题封装简单,把各种异构封装透明,降低大家进入这个市场的门槛。
经过全行业长达多年的不断探索,业界主张将MKey无线中间件作为标准化的无线开发平台,进行手机开发和手机应用。利用MKey无线中间件进行手机开发,不仅能够解决上述的各方面开发难题,而且在成本控制、开发周期、开发难度等方面,均是目前最为出色的实现方法,整体开发技术水平相较国外无线开发而言,也显得十分突出。
MKey无线中间件屏蔽了各种硬件平台、操作系统、无线网络和数据源的差异,将所有技术难点进行了统一封装,可帮开发者快速、低成本实现移动化开发应用。
MKey无线中间件的特点:
开发1次,全终端适用;
2周完成一个项目的开发;
开发费用节省70%;
开发周期缩短80%。
![](images/mobdev-bk3.png)
1、没有MKey的移动开发
手工作坊模式,所有技术从头到尾研究,“自己种棉自己织布”
实施一个普通的移动OA项目,需要耗费5-10人/月
会手机开发的人才稀少,人员成本高昂
多终端覆盖难以实现,综合成本十分巨大
一年实施十几个无线项目已是极限
技术不成熟、不可控因素多,项目风险高,一旦失败损失巨大
2、利用MKey进行移动开发
工业流水线模式,使用专业工具,快速批量“织布”
实施一个普通的移动OA项目,只需0.5-1人/月
只需了解Web开发,经过几天培训就能上手使用MKey,人才资源丰富、成本小
只需编写一次程序,就能生成适用不同平台的多个安装包,全终端覆盖
一年实施几百个项目轻而易举
成熟工具、成熟应用,项目实施高度可控,无任何后顾之忧
1、企业应用
CMMB移动电视增值平台
移动(无线)电子政务平台
移动电子商务平台
移动OA
移动IM
移动CRM
移动ERP
手机业务助理
移动维保
移动物流
移动保险
移动采编
移动进销存
移动直销管理
移动分销管理
移动电子商务
移动执法
移动税务
移动统计
移动警务
移动城管
移动工商
……
![](images/mobdev-bk4.jpg)
2、个人应用
手机搜索
手机浏览器
手机证券
手机自助服务系统
手机银行
手机社区
手机邮件
……
![](images/mobdev-bk5.jpg)
有三大平台:Symbian、WindowsMobile(以下简称Windows)、Linux。Palm已经完全出局了,不需要再考虑。另外还有两大阵营:J2ME阵营(跨多种操作系统,包括Windows)和ASPCF阵营(只能运行在Windows上,以下简称ASP)。
![](images/mobdev-bk6.jpg)
这些平台上的开发语言包括:
1.Symbian:C++、Java、Python
2.Windows:C#、C++、VB、Java
3.Linux:C++、Java...
4.J2ME阵营:Java
5.ASP阵营:C#
J2ME相比.NET来说,优势主要在游戏开发方面,但是.NET有着更加广泛的用途。在MIDP2.0中,核心部分所加入的主要是对于3D图形、多媒体、GameAPI的支持,用来支持游戏的开发。因为在制定MIDP2.0规范时时间有限,所以将其他很多重要的功能都放入了可选包中,而不是作为MIDP2.0的核心内容。因此尽管很多手机都声称支持MIDP2.0,但是可能没有安装某个可选包,使得使用了这个可选包的软件在这款手机上无法运行。例如,假如没有安装PDA可选包,就无法访问手机的本地文件系统、无法读取通信录、无法读取信箱中保存的短信。而这些功能是开发个人信息备份/恢复软件所必需的。不过这种情况会随着时间的推移而逐渐好转,新推出的智能手机中都包括了越来越多的可选包,Nokia、Motorola、索爱等大厂商对于J2ME的支持力度是非常大的。除了可选包未安装这个限制之外,J2ME应用运行在严格的沙箱之中,要开发使用除系统内存、显示、声音控制之外的其他资源(例如,本地文件系统、通信录、信箱),所开发的应用必需经过签名,这个开发过程相当的繁琐。
正是因为大多数Symbian手机上J2ME版本太老,功能非常有限,所以除非开发游戏类应用,大多数Symbian开发者都选择使用C++做开发,因为C++可以访问系统所有的资源。然而,SymbianC++尽管有很多优点,但是对于开发者却是很不友好的,学习门槛相当高(一大堆的清规戒律,好像是鲁提辖上了五台山),从面向对象设计的角度来看问题也很多(与MFC类似,也许有人认为面向对象在手机开发中并不是很重要)。没有半年时间想成为SymbianC++的高手相当困难,这个巨大的sinklost需要经过慎重的权衡。
在Symbian上使用Python做开发的人还很少,优缺点还不大清楚。
顺便说一下,Nokia今年上半年推出了开发工具Carbide,针对SymbianC++和J2ME分成两个版本,这两个版本都是基于Eclipse的。
在Windows上也可以做J2ME开发,如果手机安装了MIDP2.0的支持就可以直接使用,如果没有安装,需要开发者另外安装。Windows上比较好用的是IBM的J9VM,但是J9VM仅包括MIDP2.0的核心部分,而不包括大量的可选包。如果你只是开发游戏,那应该是够用了。
不过Windows开发者首选的还是C#,C#开发效率大大高于C++,性能也很不错。相比Java来说,可以更加容易地访问所需要的资源,因此开发效率也更高。Windows上前几年使用的EmbedVC++、EmbedVB两个工具已经退居二线。
Linux上可以使用C++和Java做开发,笔者对于在Linux上如何做开发没有任何经验,在此略过。
综上所述,在手机开发中占据统治地位的是三大语言:C++、Java与C#。
J2ME与.NET两大平台相比,J2ME在游戏开发方面有优势,而.NET在游戏以外其他领域的开发(例如:移动企业应用)更有优势。但是由于J2ME得到了手机一线大厂的力捧,因此前途不可限量。销售Windows智能手机的厂商主要还是一些新兴的排名稍靠后的厂商(联想、多普达、夏新...)。
移动智能应用比较发达的国家是日本和美国。在日本是以游戏类应用为主,在美国是以移动企业应用为主。中国将来走的道路,大概会与日本相同。因此在3G上马后,J2ME应用在国内的爆发是可以预期的。
|