掌中“钱”坤大——掌握Windows Mobile软件开发技术
技术与开发
某资深程序员戏说:要挣钱,做手机软件;要糊口,做定制软件;要扬名,做共享软件;要破产,做系统软件,这就是中国目前的“程序员定律”。
不可错过3G时代最火爆的开发技术
仅仅几年间,中国已然成为第一手机大国。而智能手机的崛起,也使手机替代PDA成为第一掌上设备。手机尤其是智能手机的使用人群,又以时尚一族居多,他们对新功能的追求和新热点的追捧永难停止。
进入3G时代后,手机成为一部掌上宽带电脑,手机的功能可根据用户需要自由定制,尤其是娱乐功能,不管是音视频的播放,影像的拍摄和编辑,还是游戏的玩乐,都不过是安装几款手机软件的事情。庞大的用户群以及难以估量的应用需求,使得手机软件开发成为最有前途的IT职业,这从风险投资对手机软件开发商的青睐就可窥斑知豹。
东方卫视的财经真人秀节目《创智赢家》第一季的百万大奖,就是被从事手机游戏开发的选手所夺取。而高薪聘请手机软件开发人员的广告也频繁见诸报端,使程序员们无不感受到手机软件开发的热度。可以说,手机软件开发是当今最有前景和“钱”景的开发领域之一,同它结缘的即使尚未满载而归也是前途一片光明。特别是手机软件开发的兴起不过数年,强势的垄断者尚未形成,因此不管是大公司还是小作坊,抑或是个人开发者,都不难觅得机会。而相对于桌面软件而言,手机软件还有一个天然优势,就是它的注册和收费非常方便,这不仅能有效地减少盗版的发生,而且对缺乏推广平台的个人开发者来说,也具有相当大的吸引力。
手机软件开发并不难
智能手机的操作系统主要有Windows Mobile、Symbian、Linux和Palm等,主要的开发语言有C++、C#、Java等。尽管Windows Mobile资历不算最老,但挟Windows在桌面系统中几乎一统天下的优势,以及微软不断在掌上系统上发力,它大有后来居上之势。同时作为主要的开发工具提供商,微软在Windows Mobile开发环境的建构上可谓不遗余力,从.NET Compact Framework 2.0(架构)、Windows Mobile SDK(开发包)、Visual Studio 2005(开发工具)、SQL Server 2005 Compact Edition(数据库),到Device Emulator(模拟器)、Emulator Images(模拟器镜像)、辅助工具和开发资源等一应俱全。可以说,即使是广受开发者推崇的J2ME,在开发环境的优越和开发资源的丰富上都无法与之抗衡,足见微软对掌上系统寄望之殷和用意之深。当然,对开发者来说,从桌面应用开发转向手机软件开发也因此变得较为容易,因为从开发层面看,两者的差别并不大。尤其是那些基于.NET的桌面应用,甚至只需要针对.NET Compact Framework 稍作修改,即可移植为手机软件。
随着越来越多的智能手机采用Windows Mobile,运行于该系统的应用软件也渐趋丰富。这些软件一部分出于开发者的原创,一部分来自对桌面应用的移植。原创主要集中在通讯和网络部分,而移植则多见于娱乐软件,如游戏、影音播放等。
对刚进入Windows Mobile开发领域的程序员而言,将自己成熟的桌面应用作品进行移植也许更为便捷。而对那些有志于手机软件开发的大学生来说,在透彻了解手机软件市场的基础上,有针对性地开发令人耳目一新的原创作品也许更为重要,须知一个具有原创精神和原创能力的人永远是职场的宠儿,获取满意的职位和薪酬当不在话下。由于手机深深地嵌入了社会生活的方方面面,而且它几乎集当今最热门的技术于一身,因此手机软件的开发和应用领域都将无限广阔,也为原创软件的诞生提供了足够的空间。
用Visual Studio 2005开发Windows Mobile程序
虽然在Compact Framework Build Helper的支持下,Delphi 2005也可用来开发Windows Mobile程序,但最佳的开发工具还是非微软自家的Visual Studio 2005莫属。
Visual Studio 2005已集成了完整的Windows Mobile开发环境,包括.Net Compact Framework 2.0、Windows Mobile 2003 SDK、模拟器和相应的程序模板,不过,为支持目前流行的Windows Mobile 5.0或最新的Windows Mobile 6.0,仍须对Visual Studio 2005开发环境进行升级,即从微软网站下载Visual Studio SP1、Windows Mobile 5.0/6.0 SDK for Pocket PC、Windows Mobile 5.0/6.0 SDK for Smartphone和ActiveSync 4.2并顺次安装。如果需要使用中文模拟器,还要单独安装Windows Mobile 5.0 Emulator Images-CHS。
下面,我们在Visual Studio 2005中使用C#编写一个简单的电子表程序,旨在给大家带来感性认识。选择“新建项目”菜单,在模板对话框中选择Visual C#→智能设备→Windows Mobile 5.0 Smartphone→设备应用程序,新建Windows Mobile程序项目ShowTimer,如图1所示。

当新建智能设备程序项目时,Visual Studio 2005会自动生成相应的模拟器界面。从右侧工具箱“设备组件”中将定时器组件Timer拖到Form1中,修改其属性Enabled值为True,Interval值为1000。然后再从“公共设备控件”中拖两个文本显示控件Label到Form1中,修改Label2属性Text值为“当前时间”,并调整其Font、ForeColor等属性,设计效果如图2所示。

最后双击Timer1,在Form1.cs中填入以下代码:
private void timer1_Tick(object sender, EventArgs e)
{ int Mhour,Mminute,Msecond;
string hh,mm,ss;
Mhour = DateTime.Now.Hour;
Mminute = DateTime.Now.Minute;
Msecond = DateTime.Now.Second;
if (Mhour < 10) hh = “0” + Mhour.ToString();
else hh = Mhour.ToString();
if (Mminute <10) mm = “0” + Mminute.ToString();
else mm = Mminute.ToString();
if (Msecond <10) ss = "0" +Msecond.ToString();
else ss = Msecond.ToString();
label1.Text = hh + ":" + mm + ":" + ss; }
点击启动按钮,Visual Studio 2005开始编译ShowTimer程序,编译完成后弹出部署对话框。选择“CHS Windows Mobile 5.0 Smartphone Emulator”项,再点击“部署”按钮,即可启动Smartphone中文模拟器运行ShowTimer程序。程序运行效果如图3所示。

从上面的示例不难看出,设计Windows Mobile程序与设计桌面程序并无根本的区别,特别是在.NET架构下使用C#、VB.NET等进行编程,两者间的差别几乎可以忽略不计。这不仅体现了.NET架构的优势,而且也充分说明Visual Studio 2005这款微软精心打造的终极开发利器确实名不虚传。
进入Windows Mobile开发之门
既然手机软件的天地如此广阔,前景如此诱人,而在.Net Compact Framework 2.0架构下利用Visual Studio 2005开发Windows Mobile程序之路又如此平坦,因此,程序员和有志于软件开发的大学生没有理由长时间徘徊在Windows Mobile的门外。
对那些熟谙.NET程序设计,对.NET的当家语言C#了然于胸的程序员来说,转入Windows Mobile开发将易如反掌。而作为当下最热门的开发语言,C#早已在大学流行开来,其风头甚至直逼如日中天的JAVA。因此,在Visual Studio 2005将桌面应用和Windows Mobile程序之间的开发界线几乎抹平的情况下,大学生要成为手机软件开发队伍中的一员已非难事。
正因为Windows Mobile程序设计与.NET桌面应用开发一脉相承,因此建议初学者还是从桌面应用开发入手,熟悉后再转入Windows Mobile程序设计也不迟。C#的语法并不复杂,有一定程序设计基础的朋友学起来会很快,但.NET架构却是一个令人挠头的东西,好在Visual Studio 2005对它做了很好的封装,使得.NET编程不再是难途,而成为轻松愉快之旅。
由于.NET Compact Framework 2.0可视作.NET Framework 2.0的简化版本,因此许多.NET Framework 2.0的功能不被支持。了解两者之间的差别,对开发Windows Mobile程序大有裨益。不过,即使不了解这些,也对编程无大碍,因为Visual Studio 2005会给你详细的提示,并将不能适应.NET Compact Framework 2.0的代码剔除出来。
学习资源何处寻
目前专门介绍Windows Mobile开发的书籍并不多,其中由微软.NET平台技术支持工程师刘彦博编著、人民邮电出版社出版的《Windows Mobile平台应用与开发》是较好的一本。该书对Windows Mobile和.NET Compact Framework作了深入介绍,并详细讲解了该平台下主要的程序类型的开发要点。该书理论阐述较好,但对编程实践的指导性较为薄弱。与此相反,同样由人民邮电出版社出版的《Windows Mobile手机应用开发》,却是一本标准的实战手册。该书由傅曦编著,详细介绍了各种开发技术,并给出了丰富的示例。两书结合起来学习,确实能起到互补之效。
至于网上资源,自然是微软网站最为丰富。Windows Mobile开发所涉及到的各种资源,都可以在http://www.microsoft.com/downloads下的Windows Mobile栏目中免费下载。同时,在MSDN的Windows Mobile频道(http://msdn2.microsoft.com/en-us/windowsmobile),微软的技术专家撰写了大量技术指导文章,几乎涵盖了Windows Mobile开发的所有方面。经常访问该频道,不仅可以获取大量技术信息和开发资源,而且能快速提升自己的开发水平。
作为国内最大的IT技术交流平台,CSDN也有大量的Windows Mobile开发信息。主要集中在http://tag.csdn.net/tag/WindowsMobile和http://community.csdn.net等处。
另外,移动开发网(http://www.biplip.com)、Mobile应用开发网(http://mobile.winfans.net)等技术网站也值得经常访问。而许多Windows Mobile开发高手都喜欢将自己的研究成果发表在博客上,认真拜读这些充满大智慧的博文是开发者从新手变为高手的捷径。