2003年三月份,我刚开始接触了手机游戏的开发。开发手机上的游戏程序,最初仅仅只是出于爱好爱好,利用业余时间自己陆陆续续的也写了一些Code,得到了一些经验,本来是想敝帚自珍的,但是朋友的鼓励,使我决定把自己的一点点心得体会写出来,藉以告慰我在学习中所阵亡的千千万万脑细胞,也为和我一样在黑暗的艰难摸索人们中提供一些微不足道的帮助吧 J。由于我本人对于手机应用程序的开发也是初学,假如在文章中出现什么问题,还望各位读者海涵。
很多人都在网上问我,开发手机应用程序是不是一定要买一个真正的手机平台,我的看法是刚开始学习的时候不一定要买手机,先在网上多看多问,把平台的开发环境配置好,在模拟器上先单兵操练,不过我建议假如你真的需要把你的作品产品化的时候,最好配备一个真实的手机平台用来测试,因为在模拟器的运行环境中用很多的运行效果和真实的设备环境还是有很大的出入,在模拟器平台上运行得很好的程序未必在真实的设备上就OK,更何况你也一定跟我一样很期盼能够随时随地地拿出手机Show一把自己的程序J。
如何选择开发的工具也是许多人在预备学习前奔走相问的,不过这个也实在不好回答,在当前主流的手机开发平台上基本上是战国时代,诸侯们纷纷你方歌罢我登场,各有各的好处,各有各的弊端,仅我所知道的,当前智能手机的操作系统主要为微软的SmartPhone(这是基于WinCE平台的),Symbian(这是为诺基亚,索爱,西门子等各大手机厂商所支持的)还有Brew(这是高通公司的)等,下面我就单从程序人员的角度聊一聊如何选择这几种开发平台。
假如你是一个优秀的Windows程序设计人员,而且对于MS情有独钟,OK,你可以试一试基于WinCE平台的SmartPhone的开发,快到微软的网站上下载他free的eMbedded Visual C++ 4.0和SmartPhone的模拟器,安装好以后,你就可以在熟悉的Visual C++的环境下工作了,甚至喜欢C#的同志们可以选用Visual Studio .Net 2003 并且在这个环境下开始你的工作,一切都是那么的熟悉。至于缺点么,恩,就是启动和运行模拟器太慢了,调试一个程序你还是需要付出一些耐心的,呵呵。(下图就是EVC的运行环境)
(怎么样,开发的环境是不是很类似我们熟悉的VC++呀 J)
假如你和我一样手机都是Nokia 60系列的,那就可以考虑学习Symbian了,Symbian是一家由各主要无线通信技术公司持股的软件公司,它提供一个智能化的手机平台SymbianOS,主要有诺基亚,西门子,索爱等,他是微软在智能手机平台的最大竞争者。Symbain同时支持C++开发和Java开发。不过学习Symbian上面C++的开发也是需要一个艰难痛苦的历程,你可以先在Nokia的开发人员站点上下载Nokia 相关与Symbain的开发工具nS60_sdk系列,安装后可以集成到VC6的环境中,在安装的时候也是有几项需要非凡注重的(安装的问题,在论坛上询问的也非凡多),首先,你要保证你的操作系统是Windows2000 + SP2 或者以上的配置;第二,你需要在你的VC6上安装SP3以上的补丁,(呵呵,我装的是SP5大概有几百兆吧J)第三,安装nS60_sdk的时候要考虑装在C盘上,这个么在网上说法不一,不过假如你和我一样刚刚安装的时候有过失败的纪录,那么病急乱投医,也会把它安装在C盘的;第四,也是最重要的一定要保证你的 nS60_sdk的统一盘符上也安装了Perl和JDK1.3,因为nS60_sdk1.2并没有带着两个东东,所以我安装的是nS60_sdk1.0最后,一定要注重非凡保证你生成应用程序的路径盘符要和nS60_sdk1.0一样,(在我这里当然也就是C盘了)也要保证系统的环境变量Path中存在这几个工具的路径。当这些都配置好了,你就可以拷贝AvkonAppWiz.awx 和 AvkonAppWiz.hlp 文件到 Visual C++ template (c:\Program Files\Microsoft Visual Studio\Common\MsDev98\Template)目录下,然后启动你的VC6,按照向导选择Nokia 60 SDK,然后一步一步地走下去,点击确定就可以生成你的应用程序框架了,夷,不好,怎么看到了
"c:\Symbian\6.1\Series60\epoc32\build\test\group\test\wins\test.dsw
The specified project could not be inserted into the current workspace."这个错误,千万别紧张,很多人都碰到过,回头再看看有什么地方设置的不对,非凡要注重环境路径的配置呀。好了接下去就可以正式进入学习开发了,Nokia 60 SDK自带的帮助和实例也许会对你有很好的帮助的。据说国外有高手可以把这个SDK安装配置在VS.NET上开发,呵呵,真是厉害,至少我还没有成功过。以上为Nokia60系列的开发步骤,假如你需要开发索爱的P800(这也是我梦寐以求的一款好机子J ),可以下载他的工具UIQ来开发。
(下图为Symbian的具体开发环境)
Brew是我一个好朋友的开发利器,它是高通公司推出的无线二进制运行开发操作环境,也必须要在高通的特定的硬件平台上运行。在朋友的帮助下,我在高通的网站下载了他的BREW_SDK_20zn ,他的开发环境也是基于VC6的(呵呵,微软一定很后悔为什么把开发工具做的那么通用,搞得对手们纷纷拿来就用),在进入向导生成代码框架时你会发现Brew忽然需要你填入一个ClassID,这是为了保证在机器中的注册信息唯一,假如你做的是测试程序的话,你可以利用Brew SDK自带的工具MIF编辑器来生成相应的ClassID,并运行在模拟器上。但是假如你需要运行在实际的平台设备上,你就必须要注册到高通的网站上,成为他的开发者,当然还要每年都向他缴纳一定的会费(是$),然后才可以从他的站点上得到实际的ClassID,并且在硬件环境上测试,否则你就只能通过MIF编辑器生成本地ClassID在模拟器上跑着玩了,真是生财有道呀:-)。Brew的开发模式基本上与Symbain很类似,都是在VC的开发环境中编译代码,生成一个完整动态库,然后通过运行模拟器的可执行程序加载动态库,就可以调试你做好应用程序逻辑了,假如调试通过,就可以通过相关的工具再编译成底层硬件设备可执行的二进制代码,譬如ARM等,通过打包下载就可以运行在你的手机上。OK,至于他们两个的不同之处么,唔... Brew是纯粹的C语言开发的,它通过一套独特的机制模拟了类似于COM的体系框架;而Symbian呢,则是完全的c++,他自身在内部实现了一整套的类库体系(非常类似于MFC)来开发实际在Symbain上跑的应用程序。他们的类库为了各自适应自己的平台所提供的功能,还是有相当的不同。