最近迷恋起中国象棋来了。我棋力很一般,但是总感觉人生如棋,每一个决定都会影响将来局势的发展。深思熟虑者,后势就比较占优。沉着应战,方显人生力量。刚好,2月份的时候把我的一部使用了快两年的三星普通手机换成了一部HTC的P4550智能手机,闲来无事就想装些游戏,于是下载了coolchix,一款老外开发的中国象棋游戏,应该说棋力不是很高,但我还是输多胜少,不太甘心,于是下载了楚汉棋缘研究基本杀法和棋谱,感觉很有帮助。刚好最近我也在看一些商业模式方面的资料,感觉手机软件是一个很有潜力的市场,遂想能否开发一款类似于楚汉棋缘的手机软件。计划用一个月的业余时间进行开发,先实现其中的棋书功能,供人研究棋局用。并且想尝试一下,学习开发技术然后blog,接着开发然后继续blog的模式。
计划:
09/03/08---09/03/14 掌握windows mobile6下用vc++开发的基本技术。包括IDE使用,debug,deploy,display api,触摸屏api,能够把棋盘画出来,能够移动旗子。
09/03/15---09/03/21 设计并实现走法生成器,设计棋谱文件结构,实现读写棋谱的类。
09/03/22---09/03/28 完成基本“棋谱研究”功能。具备“玩家尝试”、“棋谱选择提示”、“自动应着”功能。
09/03/29---09/04/04 加入简单的人机对战功能。
希望这样能留下一些知识痕迹,供自己和同好参考。闲话就到这里,下面开始技术活。
我使用的是一款HTC的P4550凯撒智能手机,装了windows mobile 6.1中文版,CPU是Qualcomm 7200,速率为400MHz,屏幕大小是240x320,带触摸屏和QUERTY键盘。首先罗嗦一句,开发手机软件前,将软件要定位的目标设备明确下来是必要的,这将涉及到选择开发工具、编译套件等后继步骤。所以,作为入门的我们,最好把我们手机软件的目标设备类别确定下来,并且就这类进行学习开发。当然主要原因还是我的手机就一部啊:)。
首先准备开发环境。既然是windows mobile,所以咱们当然就是在windows pc上进行开发了。开发windows mobile 6操作系统的应用程序需要Microsoft Visual Studio 2005以上版本。最简单就是去网站上下载一个VS 2008 express 版本,最好支持vc++和c#。然后去 msdn.microsoft.com/windowsmobile 下载 windows mobile 6 SDK。安装好这些工具后我们就可以开始了。
如果英文好的话可以先看一段入门介绍 http://msdn.microsoft.com/en-us/windowsmobile/bb264341.aspx 上的“An Introduction To Developing with Microsoft Windows Mobile 6”。如果懒得看,就看我的blog吧,呵呵。
先明确一些常用术语,对于微软的嵌入式操作系统 windows mobile 6 来说,有两类设备:
第一类: windows mobile6 professional devices以及windows mobile6 classic device。这些设备包含常说的PDA,Pocket PC,因为他们有触摸屏和全键盘(如QUERTY键盘),很像一个小型笔记本电脑。如果有手机功能的,就是windows mobile6 classic device。
第二类:windows mobile6 standard device。这些设备没有触摸屏、没有全键盘,大多是手机,就是常说的智能手机。
所以要注意,不要一提到智能手机就觉得功能很强大,其实我的凯撒就是属于第一类,windows mobile6 classic device。当然这些分类是对微软的windows mobile6操作系统而言的。
创建一个 demo app 项目(TODO)
用模拟器调试程序,如下图:
问题:需要一个中文版的模拟器,否则编译出来的文字在模拟器中显示是乱码。找了下,目前还没有wm6的中文映像文件,所以只好等,先用wm5的中文映像作为模拟器调试OS了。下图就是用wm5 ch版本的模拟器效果:
可以用两种方式进行程序的调试:模拟器和物理设备。都很简单,只需在“目标设备”下拉单中选择对应的目标设备并插上手机的联机线即可。
调试完成后就要进行打包、上传到手机、安装的过程了。当然,如果是所谓的绿色软件,那只需要简单复制到手机上运行程序即可。
程序打包的教程参考:http://msdn.microsoft.com/zh-cn/library/ms228783.aspx
创建程序安装包的关键步骤如下:
1、要在同一个“解决方案”下创建一个“智能设备cab项目”。
2、要在cab项目的“属性页”中把provider改成英文的,否则生成时报错,说unicode不能变为Ascii码。
3、在“应用程序文件夹”下添加“项目输出”内容为“主输出”。
4、如果想让安装后的程序在手机的“程序”目录下有快捷链接,那么要添加一个“Programs文件夹”,然后右键点击“应用程序文件夹”下的“项目输出”,创建一个快捷方式,并且在属性页中把名称改为英文的。之后点击右键,用剪切复制的方式把它粘贴到“Programs文件”下。
5、生成cab项目,得到一个 cchess_teacher.cab 文件。