模拟Windows Mobile平台
在介绍如何在Windows家族操作系统下模拟基于Windows Mobile平台的PPC和Smart Phone之前,先简要介绍什么是PPC,Smart Phone,Windows Mobile操作系统。在认识到它们的优点后,能更好的体现出模拟Windows Mobile平台的重要性。
Windows Mobile是运行在移动设备(Pocket PC和Smartphone)上的操作系统,将熟悉的Windows桌面扩展到了个人设备中。在Windows家族上能实现的功能在Windows Mobile上基本都可以实现,并且与其有着相似的用户体验和界面。如办公方面Windows Mobile自带(Office Mobile, Pocket Outlook),娱乐方面(Windows Media Player 10, Pocket IE)等等。
下图为Windows Mobile的发展历程:
本文主要讨论Windows Mobile 5.0操作系统。
Pocket PC 和 Smartphone 之间的区别。Smartphone 主要是在使用方面作为一种电话设备而设计的。并且借助Windows Mobile 5.0,提供对多媒体娱乐和日常办公强有力的支持。Pocket PC 主要是作为一种小型个人计算机而设计的,并且目前相当一部分 Pocket PC 设备也具有电话功能,我们也称这种带电话功能的PPC为Pocket PC Phone。这样出差时不再需要携带笔记本电脑,手机,数码相机和MP3随身听等等各种设备,只需带一个PPC就足够了,因为其内置Office办公软件,可进行幻灯片的演示;并且也拥有百万像素级别的摄像头,足以满足一般照相摄像的需要;并且在各种各样扩展卡的支持下进行视频演示,播放各种格式及容量的视频,音乐甚至电影,也不再是“不可能完成的任务”。
Windows Mobile全球市场发展状况 目前Windows Mobile操作系统拥有45%的全球个人移动设备占有率,覆盖48个国家的68个运营商。41家移动终端生产厂商,30种手机都采用该操作系统。全球近80%的移动企业解决方案都是基于Windows Mobile平台来实现的。全球700万Visual Studio及38万Windows Mobile专业开发人员为其研发各种应用软件。并且全球9000余家微软合作伙伴为其提供各种各样的技术支持。
模拟Windows Mobile平台可以更加方便安全的测试各种应用软件及其功能。对于普通用户来说,可以先在模拟器上安装软件并进行测试,以检验该软件的功能是否符合自己的需要;对于开发人员来说,可以在模拟器上测试编写的程序,以免对真正的设备造成损害。通过下面的章节您将了解到,如何在PC上模拟Windows Mobile平台,并对其进行配置。
Visual Studio 2005开发环境包含Windows Mobile模拟器。
Visual Studio 2005是一个非常便捷的集成开发环境,并带有强大的调试工具。利用其集成的Windows Mobile模拟器(设备仿真管理器)这个工具,我们可以模拟出大部分Windows Mobile设备,如Pocket PC和Smart Phone等等。
首先启动Visual Studio 2005,然后选择“工具”,单击“设备仿真管理器”。
通过该管理器,我们可以虚拟启动和管理基于Windows Mobile平台的Smart Phone和PPC终端设备。
但Visual Studio 2005的安装是非常庞大的(基本安装需要大约2.5-3Gb的空间),而且也不是免费的,所以对于仅进行一般软件测试,不进行研发来说,安装Visual Studio 2005是非常奢侈和没有必要的。因为我们可以通过其他途径免费的来获取该模拟器而不需要安装Visual Studio 2005。
选择单独获取“设备仿真管理器”而非Visual Studio 2005,是一种非常灵巧的选择,因为其占据更小的资源空间,并且可以免费的从微软网站上下载。下载地址如下:
http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en
在该网站上我们可以下载到“设备模拟器”(V1Emulator.zip)和Windows Mobile 5.0 MSFP英文版的镜像(efp.msi)这两个文件。下载后分别双击安装即可。
“设备模拟器(Device Emulator 1.0)”是一个模拟基于ARM设备的独立版本,他与Visual Studio 2005所自带的模拟器完全相同。 它比它的前辈(x86模拟器)有着更多的优点:
注意:“设备模拟器”中并不带有操作系统,因此您还必须安装操作系统的镜像文件(efp.msi)。
在安装操作系统镜像文件之前,必须安装“模拟器虚拟网卡”。该软件可以在微软的网站上免费下载,地址如下:
http://www.microsoft.com/downloads/details.aspx?familyid=DC8332D6-565F-4A57-BE8C-1D4718D3AF65&displaylang=en
下载后双击安装。
模拟器虚拟网卡用于将模拟器的网卡映射到PC机物理网卡上,这样一个物理网卡可以拥有两个IP地址,一个分配给PC,另外一个分配给模拟器。其工作原理与微软VPC的虚拟网络服务很类似,它们都是注册了一个微软的网络虚拟服务并绑定到网络适配器上,通过网络适配器来构建一个虚拟的网络。
只有安装了虚拟网卡,并对模拟器进行设置,才能使其连接到互联网和通过ActiveSync软件和PC进行数据交换。
某种意义上讲“设备模拟器”和我们经常使用的虚拟机 (VMware, VPC)的原理是一样的。下图为“设备模拟器”的层次模型图。
与OSI网络模型图类似,服务是先从最低层一层一层地传递到最高层依次为 “Virtual Service”-->“Device Emulator Manager”-->“Device Emulator”-->“Device Virtual Image”-->“Virtual Windows Mobile”。
“Virtual Services”最低层服务,提供一些如虚拟网络这些服务。它的上一层,“Device Emulator Manager”层管理哪些镜像是被启用的,哪些镜像是被连接的。它的上一层是 “Device Emulator ”这个程序。它通过调用它的上一层 “Device Virtual Image”来模拟实际设备。它的上一层 “Virtual Windows Mobile”可以运行虚拟的Windows Mobile系统。
虚拟模拟器最大的好处是可以同时管理多个虚机,虚机同时也具有复原性。当我们遇到一些程序在设备上运行异常,比如说不能正常地退出。我们可以通过虚机的复原性这个特点,重新“Reste”,避免了在实际设备上运行的一些风险。
设备仿真管理器是用来管理一个或多个虚拟设备。下图为设备模拟管理器的界面图
在上一章介绍过,“设备模拟器”是工作在“设备仿真模拟管理器”这层之上的,所有的设备镜像都需要设备模拟器进行驱动。这个工具本身是工作在命令行模式的,也就是说可以通过输入参数的方法来启动一个特定的虚机环境。该程序在目录中的文件名为“DeviceEmulator.exe”。当我们双击这个文件时会弹出一个有关参数帮助的对话框,如图所示。
实际上在“设备仿真管理器”中,也是通过一些之前预定义的一些参数,来运行“设备模拟器”这个应用程序,从而调用不同的虚拟镜像,启动不同的虚拟机。
如果安装了如第一章所述的Windows Mobile 5.0镜像文件,在其安装文件夹里可以找到,如图所示的这些文件。
其中以“.nb0”结尾的文件均为虚拟设备镜像文件。该镜像文件就像VPC和VMWare里面的虚拟硬盘一样。有一些老版本的镜像文件是以 “.bin”为结尾的。 微软提供不同Windows Mobile系统版本和不同Windows Mobile语言版本的下载。
每个镜像文件还有4个与其相关的设备外观文件,其中3个绘图文件和一个用来描述它的XML文件。如下图所示。
除了可以通过“设备仿真器管理器”来启动模拟器以外,我们还可以通过“DeviceEmulator.exe”加参数的形式,来启动自己定义的模拟器。
在前面的章节里,已经提到过,通过执行“DeviceEmulator.exe”加参数的形式来调用各种自定义的模拟器。那如何使用模拟器的命令行参数?最常见的办法就是使用批处理文件(*.bat)。
首先创建一个以.bat结尾的文件,然后用记事本打开对其进行编辑,如图所示,是一个名为test.bat的示例文件。
双击运行该批处理文件后,可以启动一个带有虚拟外接存储卡的设备模拟器。下面将介绍如何用“设备仿真器管理器”和命令行参数,这两种方式来配置模拟器。
启动设备模拟器后,单击“文件”选项,然后选择“配置”,便会出现如下图所示的对话框,打开“显示”选项卡。在“外观”这个选项里,我们可以选择描述设备模拟器外观的XML文件。
命令行参数:“/skin filename”可以指定皮肤文件。
设备的存储空间是有限的,所应在实际移动设备应用上,我们经常把相当一部分文件放到外接存储卡上。下面将介绍如何在模拟器上虚拟出外接存储卡。
启动设备模拟器后,单击“File”选项,然后选择“Configure”,如下图所示,在“General”选项卡内的 “Shared folder”上选择一个已存在的目录为虚拟的外接存储卡。
命令行参数:“/sharedfolder directoryname”可以为模拟器安装一个虚拟的外接存储卡。
启动设备模拟器后,单击“文件”选项,然后选择“配置”,在弹出窗口中选择“网络”选项卡,然后再钩选“启用NE2000 PCMCIA网络适配器并绑定到:”并单击“确定”按钮。如下图所示
此时设备模拟器,会弹出一个通知, 二者任选其一即可,如图所示。
在网卡设置里,我们可以看到已经通过DHCP服务器获得了一个IP地址。
现在我们就可以连接到互联网上了,打开“Internet Explorer”并在地址栏上输入你想要浏览的网址,如图所示。
注意:当你的机器拥有两块或以上网卡的时候,模拟器会自动选择绑定到一块已经有数据连接的网卡上,以保证数据的连通性。
命令行参数指定虚拟设备的网络绑定:
/p [macaddress] 绑定网卡到虚拟设备的NE2000 PCMCIA网卡上。
/n [macaddress] 绑定网卡到虚拟设备的CS8900网卡上。(此网卡在虚拟设备上不常用)
也许因为企业的特殊需要,移动设备需要连接到某些外接设备上,如外接的GPS设备,条形码扫描器,等等。通常情况下,模拟器可以通过串口来连接这些设备。
启动设备模拟器后,单击“File”选项,然后选择“Configure”,在“Peripherals”选项卡上选择需要把哪个串口映射到哪个指定的计算机端口上,然后单击“OK”。如下图所示
命令行参数:“/u0 serialport /u1 serialport /u2 serialport”可以把模拟器的串行端口映射到计算的串行端口上。
“设备仿真器管理器”的最大优点就是可以管理多个镜像文件。
当你打开一个虚拟镜像以后,如果没有给其指定名称,它将被赋予一个VMID,以便识别虚拟设备。如下图所示。
不过这样做也有个缺点,就是当我们同时开启多个模拟器的时候,无法分辨出哪个是我们想要的模拟器,看到的只是一大堆的VMID代码。不过我们可以通过命令行参数来解决这个问题,可以不用VMID代码而是VMname, 也就是说给他们指定特殊的显示名称。
命令行参数: “/vmname name”给虚拟设备指定显示名称。
当然如果你想指定特殊的vmid通过以下的参数也可以实现:“/vmid {GUID}”
下图为一个命令行参数的例子。
运行该批处理文件,将启动一个Windows Mobile 5.0 MSFP的虚拟PPC设备。其特性如下:
使用ActiveSync,利用DMA可以将虚拟设备连接到PC上,这样可以实现PC和虚拟机文件的交换,而且还可以利用这种办法在虚拟机上安装软件。并且使用DMA可以提高虚拟设备连接的效率。下面让我们一步一步的看模拟器是如何通过ActiveSync连接到PC机上的。
首先启动ActiveSync,然后单击“文件”选择“连接设置”,如图所示
然后会出现如图所示的对话框,在该对话框中钩选“允许连接到以下其中一个端口”然后选择 “DMA”,再单击“确定”按钮。
此时已经完成了ActiveSync端的设置,现在来配置“仿真设备管理器”。
首先选择好要与计算机进行同步的那个模拟器,然后鼠标右键点取它,选择“Cradle”选项。
此时ActiveSync会自动与设备进行连接并同步。
转载自:http://www.supinfo-projects.com/cn/2006/winmobile_cn/3/