你的第一个手机程序:Hello World!

技术与开发

随着3G时代的到来,基于手机等移动设备的程序开发必将成为一个热门领域,拥有广阔的市场前景并蕴藏着无穷的财富。因此越来越多的开发爱好者开始进军手机程序开发,那应该如何转型呢?如何快速上手呢?如何利用SDK开发出手机程序呢?本系列不容错过。投稿信箱:pcw-chendx@vip.sina.com。

严峻的经济形势,逼人的经济危机,让许多IT人士深感自危,PC平台编程人员更是深受影响,而蕴藏3G能量的手机行业,却是一座还未深挖的金矿。由于手机硬件构造、性能和PC区别很大,导致了手机编程和PC平台编程也存在着很大的差异。

以前要想进行手机软件开发,不仅要了解手机硬件的构成,还需要掌握手机编程的专属编程语言,加之相关手机编程学习资料的匮乏,使得很多PC平台编程人员望而却步,而有勇气的PC平台编程人员却又苦于找不到手机编程的入门方法。

现在,有了手机开发工具包(即SDK),利用它开发手机软件,没有了对手机硬件的顾虑,简化了编程方式。编程语言也跟PC平台的一样,例如C/C++、Java、Python等,从PC软件开发转型到手机软件设计,完全不用重新学习新的编程语言。

为了让更多的开发者加入到自己的手机平台软件开发中,各大手机厂商都不遗余力地推出各种方便开发的工具包,如Google推出的Android SDK、苹果推出的iPhone SDK、大家都熟悉的塞班的S60 SDK等,这些工具包的推出,大大地降低了手机软件开发难度和开发时间。

小知识:手机厂商为了吸引用户,留住用户,鼓励开发者开发针对自己平台的软件,并帮助开发者销售软件,如苹果为开发者提供了一个叫App Store的网上商店,它可以帮助开发者销售所开发的软件。

细说SDK

SDK 是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。

用于手机软件开发的SDK,是各大手机厂商针对自己手机平台推出的一个软件工具开发包。它为手机开发者们提供了一整套丰富的应用编程的接口和工具等,这样开发者们可以更容易更方便地去开发相关手机的应用软件。例如我们想让程序使用蓝牙设备,直接调用SDK中关于蓝牙的API即可,根本不需要了解蓝牙设备的构造和驱动内容。

除此以外,有些SDK还提供了手机模拟器功能,它能在电脑里模拟出一部手机的环境,让开发者能在电脑上方便地测试自己开发的手机软件。每个手机厂商推出的SDK都是不同的,常见的有塞班的S60 SDK,微软的Pocket PC/Smartphone 2003 SDK,苹果的iPhone SDK和Google的Android SDK,它们各自有自己的特点。

例如iPhone SDK,它是专门针对iPhone手机平台的一个软件开发工具包,它根据iPhone的硬件性能,提供了硬件加速的 3D 图像。开发者可以完全利用 iPhone 多媒体功能接口。此外三轴感应也是开发者常用的组件。

设计Hello World!程序

下面我们以Symbian S60最新版SDK为例,来看看一个手机程序是怎么诞生的。

第一步:我们先要安装SDK。S60的SDK版本较多,针对的是不同版本的S60操作系统,我们使用的是针对S60 3rd Edition, Feature Pack 2的最终版SDK。到Nokia的官方下载地址http://sw.nokia.com/id/d47c910f-755d-4e6a-99df-ac810d8c7a28,下载该版SDK(在下载之前,我们需要在该网站上进行注册,是免费的)。

第二步:我们还需要下载SDK的运行环境,去http://www.activestate.com 网站下载最新的Active Perl Script 安装程序,大家如果对英语不是太熟悉的话,可以去天空软件站或者华军软件园搜索下载。再到http://www.java.com/en/download/manual.jsp 下载最新的J2RE。

第三步:依次安装我们下载的软件Activ Perl、J2RE以及SDK,安装完毕后,点击“开始”菜单,再展开“所有菜单”,可以看见“S60 Developer Tools”的一个目录,选择“3rd Edition FP2 SDK”中的“Emulator”,如果看见一个手机模拟器(图1),便证明我们已经将SDK安装成功了。

11-f10-1-1.jpg

第四步:SDK安装成功后,我们还需要安装一个开发环境,开发环境根据开发者习惯使用的语言进行选择,如支持C++的Visual C++ 6.0、Metrowork Codewarrior,支持Java的eclipse、NetBeans等,这里我们选择NetBeans6.5来开发我们的第一个手机程序。

第五步:启动NetBeans开发环境,选择“工具”菜单中的Java平台,点击左下方的“添加平台”按钮,在“选择要安装的平台类型”的对话框中选择“定制Java ME MIDP 平台仿真器”并单击“下一步”(图2)。

11-f10-1-2.jpg

第六步:在接下来的窗口中点击“平台home目录”的浏览按钮定位到Nokia S60 3rd SDK的安装目录并点击“下一步”,这样我们便完成了NetBeans下开发S60程序的配置(图3)。

11-f10-1-3.jpg

第七步:启动NetBeans IDE,点击“文件”菜单下的“新建项目”,在弹出的对话框中选择J2ME,然后选择“Mobile 应用程序”后点击“下一步”,在下一个界面中选中“设置为主项目”和“创建Hello MIDlet”(将创建一个Hello World!的基本程序框架)后点击“下一步”(图4)。

11-f10-1-4.jpg

第八步:将仿真器平台设为“定制平台1”,设备设为“定制设备”,点击“完成”(图5)。

11-f10-1-5.jpg

第九步:在生成的项目中,点击“源”,便可以看见“Hello World!”的源代码(图6)。

11-f10-1-6.jpg

第十步:最后我们要看项目运行的结果,按“F6”或者点击“运行”即可(图7)。

11-f10-1-7.jpg

资源推荐

1. Symbian平台

简介:Symbian平台为目前智能手机市场的老大,是比较成熟的手机平台。

书籍:《SYMBIAN OS软件开发——应用C++开发智能手机应用程序入门》(其中UI部分为UIQ平台)

《Series 60 应用程序开发》(以S60平台为主,重点推荐)

《Symbian OS C++手机应用开发 (第2卷)》

论坛: http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6(Nokia论坛)

http://developer.uiq.com(UIQ官方论坛)

http://developer.symbian.com/forum/forum.jspa?forumID=37 (Symbian公司中文论坛)

2.Windows Mobile平台

简介:Windows Mobile与PC机中的Windows系统有许多相通之处,熟悉Windows系统的开发者能较快上手。

书籍:《Windows 程序设计(第5版)》

论坛: http://www.winbile.net/BBS(Windows Mobile中文社区)

http://www.windowsmobiledn.com/forum(Pocket pc forum)

3. iPhone平台

简介:国际上非常受开发者青睐的手机开发平台,目前约有10万个针对此手机平台的程序。

书籍:《iPhone Open Application Development》

网站:http://www.cocoachina.com(苹果开发中文站)

http://developer.apple.com/iphone(苹果官方的开发网站)

4.Android平台

简介:平台的年龄“较小“,相关的资料也相对较少。

网站: http://www.androidin.com(Android开发者网站)

首选哪个平台

张凯:手机程序开发者,从PC平台才转入手机平台。

当我从PC平台转入手机平台时,手机平台的选择是一个伤脑筋的问题。当时我就非常迷茫,不知道哪个手机平台更有前途。

和朋友讨论了很久都没有结论,最后我采取了一个折中的方法,用J2ME语言开发手机程序,这样可以跨平台,但因为J2ME有其天生的局限性,例如无法取得一些关键权限、运行效率较低等,反而程序不精致。

小编:我和这位开发者交流了一个星期,深深理解他的苦恼,到底选择什么手机平台上手?这个问题也是很多想转入手机开发的朋友的共同烦恼。不是人人都会J2ME语言,一来就有能力做通用程序的人毕竟是少数,所以下期我们将讨论“你首先会考虑哪个手机开发平台”,欢迎大家参与!QQ群:63357672,验证码:手机开发。