wenxinwukui

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

抠出Visual Studio 2005中的Windows Mobile模拟器

 

近一段时间,我正在用Visual Studio 2005开发一个基于Pocket PC 2003的软件。Visual Studio 2005中集成了Windows Mobile设备仿真程序(俗称模拟器),确实很方便。每当与客户沟通时,我总是带着自己的笔记本去演示。但演示过后,我把笔记本带回来,客户就看不到程序,没办法进行一些测试工作。因此,客户提出来,希望在他的电脑上也装上Pocket PC 2003的模拟器,可以随时运行程序,进行测试。如果在客户的电脑上也安装一套Visual Studio 2005开发环境,每次去演示时,将最新版本的源程序拷贝过去,虽然能解决问题,但是,安装一套Visual Studio 2005太麻烦了,并且这样也不能保护自己的源代码,所以这种方法绝对不行。那能否从已安装好的Visual Studio 2005开发环境中,将Windows Mobile设备仿真程序单独提出来呢?几经摸索,终于成功了。现将操作过程拿出来,与大家分享。

为了叙述方便,我将我的笔记本(已安装Visual Studio 2005)称为A机,将客户的电脑称为B机。

 

1、在B机上安装设备仿真程序

1)先确保B机上已安装了Windows Install 3.0以上版本。

2Visual Studio 2005  安装光盘上的 wcu\ARM\vs_emulator.exe是设备仿真程序的安装向导,双击运行,然后按照提示进行操作。设备仿真程序默认安装在C:\Program Files\Microsoft Device Emulator\1.0文件夹下。DeviceEmulator.exe是设备仿真器程序,dvcemumanager.exe是设备仿真器管理器。

 

2、将A机上的内核映像文件复制到B

设备仿真程序要模拟哪一种设备,就需要用到这种设备的内核映像文件(扩展名为bin)。在BC:\Program Files\Microsoft Device Emulator\1.0文件夹下新建一个images文件夹,并根据需要将下面A机中的映像文件复制到这里。

 

Pocket PC 2003 SE的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\PocketPC\2003\2052文件夹下,文件名是PPC_2003_SE_CHS_ARMv4.bin

Pocket PC 2003 SE VGA的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\PocketPC\2003\VGAPortrait\2052文件夹下,文件名PPC_2003_SE_VGA_CHS_ARMv4.bin

Smartphone 2003 SE的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\Smartphone\2003\2052文件夹下,文件名SP_2003_SE_CHS_ARMv4.bin

Smartphone 2003 SE QVGA的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\Smartphone\2003\QVGA\2052文件夹下,文件名SP_2003_SE_QVGA_CHS_ARMv4.bin

 

因为我在A机中安装了Windows Mobile 5.0 Pocket PC SDKWindows Mobile 5.0 Smartphone SDK,所以也可以找到相应映像文件。

中文CHS Windows Mobile 5.0 Pocket PC的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Emulator Images for Pocket PC - CHS\Deviceemulation\0804文件夹下。

中文CHS Windows Mobile 5.0 Smartphone的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Emulator Images for Smartphone - CHS\Deviceemulation\0804文件夹下。

英文Windows Mobile 5.0 Pocket PC的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Deviceemulation\0409文件夹下。

英文Windows Mobile 5.0 Smartphone的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Smartphone SDK\Deviceemulation\0409文件夹下。

 

3、将A机上的外观文件复制到B

在设备仿真程序运行时,还可以为仿真程序指定外观文件,以获得更逼真的效果。每一种外观由三个bmppng文件和一个xml 文件组成,并且保存在同一个文件夹下。xml文件是外观定义文件,三个bmppng 图像文件分别显示仿真程序的默认外观、所有按钮均为按下状态的仿真程序外观和由一种颜色填充的每个按钮的区域。

B机的C:\Program Files\Microsoft Device Emulator\1.0文件夹下新建一个skins文件夹,并将A机中相应的外观文件复制到这里。

 

PocketPC2003Smartphone 2003的外观文件在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Skins文件夹中。

Windows Mobile 5.0 Pocket PC的外观文件在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Deviceemulation文件夹下除0409子文件夹外其它的文件夹中。

Windows Mobile 5.0 Smartphone的外观文件在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Smartphone SDK\Deviceemulation文件夹下除0409子文件夹外其它的文件夹中。

 

4、在B机上安装Microsfot ActiveSync 4.2简体中文版

这主要是为了便于设备仿真程序与B机之间进行数据同步。

 

5、在B机上创建桌面快捷方式

1)为C:\Program Files\Microsoft Device Emulator\1.0\dvcemumanager.exe创建桌面快捷方式“设备仿真器管理器”。

2C:\Program Files\Microsoft Device Emulator\1.0文件夹下DeviceEmulator.exe是设备仿真器程序,应该带参数运行。

主要开关参数如下:

os_image_file_name:指定仿真程序要使用的内核映像的路径和文件名称(*.bin *.nb0)。除非使用 /s 开关启动,否则为必需的参数。

/skin skin_file_name:加载指定的外观文件。

/s filename:指定保存状态文件。如果没有指定任何 ROM 映像,则必须有 /s filename,仿真程序将从指定的保存状态文件还原。当该仿真程序退出时,它会将新状态保存到保存状态文件的最前面。

只要弄清楚了某种设备的映像文件和对应的外观文件,就可以创建该设备仿真程序的快捷方式。

Pocket PC 2003 SE为例,先为DeviceEmulator.exe创建桌面快捷方式“Pocket PC 2003 SE”,然后修改该快捷方式的“目标”为:

"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" images\PPC_2003_SE_CHS_ARMv4.bin /skin skins\PocketPC_2003\2052\PocketPC_2003_Skin.xml

(3)如果弄不清映像文件与外观文件的对应关系,可打开A机的Visual Studio 2005查看。

依次点击“工具”—>“选项”—>“设备工具”—>“设备”,见图1

1

 

 

选中某一设备,点击“属性”按钮,见图2

2

 

点击“仿真器选项”按钮,可看到该种设备的映像文件名称,见图3

3

 

在“显示”选项卡中,可看到对应的外观文件,见图4

4

 

4)如果在B机桌面了创建了多个设备仿真程序的快捷方式方式,会显得比较凌乱,应该把它们组织到程序菜单中比较好。

 

好了,客户的电脑上也有了Pocekt  PC 2003模拟器。什么时候想测试程序,只要点击菜单启动模拟器,再通过ActiveSync将应用程序布署到模拟器上运行就行了。但每次测试时,都要部署一遍,并且客户对电脑操作又不太熟练,感觉还是有点儿麻烦。因此,客户又提出来,能不能再简单点儿呢?

答案是肯定的。只要用上前面提到的“/s”开关参数,就能解决这个问题。

6、将A机上的设备仿真程序保存状态文件复制到B

设备仿真程序使用 .dess扩展名的文件,来保存设备仿真程序中所有的 RAMROM 和设置信息。因此,.dess 文件是还原保存状态时必需的唯一文件。我在A机上调试程序时,会将程序部署到A机上的设备仿真程序中。调试通过后,关闭设备仿真程序时,系统询问“退出之前保存仿真程序状态吗?”,此时选择“是”,将产生一个保存状态文件,默认情况下位于C:\Documents and Settings\<username>\Application Data\Microsoft\Device Emulator 下,文件名为{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess。保存状态文件的文件名是仿真程序的当前虚拟机标识符 (VMID),在不同的机器上会有所不同。

(1)BD盘上新建一个Emulator文件夹。

(2)A机上的{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess复制到B机的D:\ Emulator文件夹下。

(3)B机的桌面上创建快捷方式“我的Pocekt PC 2003”,修改快捷方式的目标为:

"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" /s d:\emulator\{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess

这样,客户只要双击桌面上的“我的Pocekt PC 2003”,就可直接测试程序,无需通过ActiveSync重新布署了。而我修改程序后,只要将最新的保存状态文件传给客户,覆盖掉原来的文件即可。以后双方交流的时候,无需见面,在网上就可以进行了。

posted on 2007-01-17 09:07  问心无愧  阅读(9877)  评论(22编辑  收藏  举报