模拟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)等等。

0.JPG

下图为Windows Mobile的发展历程:

1.jpg

本文主要讨论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平台,并对其进行配置。

1 模拟器的安装及其实质

1.1 获取Windows Mobile模拟器

1.1.1 Visual Studio 2005

Visual Studio 2005开发环境包含Windows Mobile模拟器。

Visual Studio 2005是一个非常便捷的集成开发环境,并带有强大的调试工具。利用其集成的Windows Mobile模拟器(设备仿真管理器)这个工具,我们可以模拟出大部分Windows Mobile设备,如Pocket PC和Smart Phone等等。

首先启动Visual Studio 2005,然后选择“工具”,单击“设备仿真管理器”。

1.jpg

通过该管理器,我们可以虚拟启动和管理基于Windows Mobile平台的Smart Phone和PPC终端设备。

但Visual Studio 2005的安装是非常庞大的(基本安装需要大约2.5-3Gb的空间),而且也不是免费的,所以对于仅进行一般软件测试,不进行研发来说,安装Visual Studio 2005是非常奢侈和没有必要的。因为我们可以通过其他途径免费的来获取该模拟器而不需要安装Visual Studio 2005。

1.1.2 获取单独的“设备仿真管理器”

选择单独获取“设备仿真管理器”而非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模拟器)有着更多的优点:

  • 直接运行ARM处理器而非x86处理器的编译代码。在大部分情况下,你可以在模拟器上运行和设备相同的二进制代码。
  • 支持“ActiveSync”同步。提供对“ActiveSync”同步的完全支持,可以使你调试软件的同步功能和实现PC上的真实数据和模拟器的实时同步。
  • 提供对更多开发环境的支持。它已经通过测试可以更好的被用于Visual Studio 2005,Visual Studio .Net 2003和eMbedded Visual C++4.0(eVC4)SP4下的软件开发和调试。并且不需要串口电缆的连接就可以支持ActveSync。
  • 提供对GAPI的支持。你可以在模拟器上编写和调试GAPI游戏。

注意:“设备模拟器”中并不带有操作系统,因此您还必须安装操作系统的镜像文件(efp.msi)。

在安装操作系统镜像文件之前,必须安装“模拟器虚拟网卡”。该软件可以在微软的网站上免费下载,地址如下:

http://www.microsoft.com/downloads/details.aspx?familyid=DC8332D6-565F-4A57-BE8C-1D4718D3AF65&displaylang=en

下载后双击安装。

模拟器虚拟网卡用于将模拟器的网卡映射到PC机物理网卡上,这样一个物理网卡可以拥有两个IP地址,一个分配给PC,另外一个分配给模拟器。其工作原理与微软VPC的虚拟网络服务很类似,它们都是注册了一个微软的网络虚拟服务并绑定到网络适配器上,通过网络适配器来构建一个虚拟的网络。

只有安装了虚拟网卡,并对模拟器进行设置,才能使其连接到互联网和通过ActiveSync软件和PC进行数据交换。

1.2 设备模拟器的实质

某种意义上讲“设备模拟器”和我们经常使用的虚拟机 (VMware, VPC)的原理是一样的。下图为“设备模拟器”的层次模型图。

2.jpg

与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”,避免了在实际设备上运行的一些风险。

2 模拟器各程序介绍

2.1 设备仿真管理器

设备仿真管理器是用来管理一个或多个虚拟设备。下图为设备模拟管理器的界面图

1.jpg

2.2 设备模拟器

在上一章介绍过,“设备模拟器”是工作在“设备仿真模拟管理器”这层之上的,所有的设备镜像都需要设备模拟器进行驱动。这个工具本身是工作在命令行模式的,也就是说可以通过输入参数的方法来启动一个特定的虚机环境。该程序在目录中的文件名为“DeviceEmulator.exe”。当我们双击这个文件时会弹出一个有关参数帮助的对话框,如图所示。

2.jpg

实际上在“设备仿真管理器”中,也是通过一些之前预定义的一些参数,来运行“设备模拟器”这个应用程序,从而调用不同的虚拟镜像,启动不同的虚拟机。

2.3 虚拟移动设备镜像

如果安装了如第一章所述的Windows Mobile 5.0镜像文件,在其安装文件夹里可以找到,如图所示的这些文件。

3.jpg

其中以“.nb0”结尾的文件均为虚拟设备镜像文件。该镜像文件就像VPC和VMWare里面的虚拟硬盘一样。有一些老版本的镜像文件是以 “.bin”为结尾的。 微软提供不同Windows Mobile系统版本和不同Windows Mobile语言版本的下载。

每个镜像文件还有4个与其相关的设备外观文件,其中3个绘图文件和一个用来描述它的XML文件。如下图所示。

4.jpg

3 模拟器的配置及使用

除了可以通过“设备仿真器管理器”来启动模拟器以外,我们还可以通过“DeviceEmulator.exe”加参数的形式,来启动自己定义的模拟器。

3.1 如何使用模拟器的命令行参数

在前面的章节里,已经提到过,通过执行“DeviceEmulator.exe”加参数的形式来调用各种自定义的模拟器。那如何使用模拟器的命令行参数?最常见的办法就是使用批处理文件(*.bat)。

首先创建一个以.bat结尾的文件,然后用记事本打开对其进行编辑,如图所示,是一个名为test.bat的示例文件。

0.jpg

双击运行该批处理文件后,可以启动一个带有虚拟外接存储卡的设备模拟器。下面将介绍如何用“设备仿真器管理器”和命令行参数,这两种方式来配置模拟器。

3.2 配置模拟器显示外观

启动设备模拟器后,单击“文件”选项,然后选择“配置”,便会出现如下图所示的对话框,打开“显示”选项卡。在“外观”这个选项里,我们可以选择描述设备模拟器外观的XML文件。

1.jpg

命令行参数:“/skin filename”可以指定皮肤文件。

3.3 为模拟器添加外接存储卡

设备的存储空间是有限的,所应在实际移动设备应用上,我们经常把相当一部分文件放到外接存储卡上。下面将介绍如何在模拟器上虚拟出外接存储卡。

启动设备模拟器后,单击“File”选项,然后选择“Configure”,如下图所示,在“General”选项卡内的 “Shared folder”上选择一个已存在的目录为虚拟的外接存储卡。

2.jpg

命令行参数:“/sharedfolder  directoryname”可以为模拟器安装一个虚拟的外接存储卡。

3.4 为模拟器配置网络连接

启动设备模拟器后,单击“文件”选项,然后选择“配置”,在弹出窗口中选择“网络”选项卡,然后再钩选“启用NE2000 PCMCIA网络适配器并绑定到:”并单击“确定”按钮。如下图所示

3.jpg

此时设备模拟器,会弹出一个通知, 二者任选其一即可,如图所示。

4.jpg

在网卡设置里,我们可以看到已经通过DHCP服务器获得了一个IP地址。

5.jpg

现在我们就可以连接到互联网上了,打开“Internet Explorer”并在地址栏上输入你想要浏览的网址,如图所示。

6.jpg

注意:当你的机器拥有两块或以上网卡的时候,模拟器会自动选择绑定到一块已经有数据连接的网卡上,以保证数据的连通性。

命令行参数指定虚拟设备的网络绑定:

/p [macaddress] 绑定网卡到虚拟设备的NE2000 PCMCIA网卡上。

/n [macaddress] 绑定网卡到虚拟设备的CS8900网卡上。(此网卡在虚拟设备上不常用)

3.5 连接外部设备

也许因为企业的特殊需要,移动设备需要连接到某些外接设备上,如外接的GPS设备,条形码扫描器,等等。通常情况下,模拟器可以通过串口来连接这些设备。

启动设备模拟器后,单击“File”选项,然后选择“Configure”,在“Peripherals”选项卡上选择需要把哪个串口映射到哪个指定的计算机端口上,然后单击“OK”。如下图所示

7.jpg

命令行参数:“/u0 serialport   /u1 serialport   /u2 serialport”可以把模拟器的串行端口映射到计算的串行端口上。

3.6 组织众多的虚拟镜像

“设备仿真器管理器”的最大优点就是可以管理多个镜像文件。

当你打开一个虚拟镜像以后,如果没有给其指定名称,它将被赋予一个VMID,以便识别虚拟设备。如下图所示。

8.jpg

不过这样做也有个缺点,就是当我们同时开启多个模拟器的时候,无法分辨出哪个是我们想要的模拟器,看到的只是一大堆的VMID代码。不过我们可以通过命令行参数来解决这个问题,可以不用VMID代码而是VMname, 也就是说给他们指定特殊的显示名称。

命令行参数: “/vmname name”给虚拟设备指定显示名称。

当然如果你想指定特殊的vmid通过以下的参数也可以实现:“/vmid {GUID}”

3.7 命令行参数例子

下图为一个命令行参数的例子。

9.jpg

运行该批处理文件,将启动一个Windows Mobile 5.0 MSFP的虚拟PPC设备。其特性如下:

  • BIN:               msfp_beta.nb0
  • RAM:              128M
  • Skin:              PPC
  • SD/MMC:        ../storagecard
  • Name:            Windows Mobile 5 MSFP
  • Console:        Open

3.8 通过ActiveSync将虚拟设备连接到PC

使用ActiveSync,利用DMA可以将虚拟设备连接到PC上,这样可以实现PC和虚拟机文件的交换,而且还可以利用这种办法在虚拟机上安装软件。并且使用DMA可以提高虚拟设备连接的效率。下面让我们一步一步的看模拟器是如何通过ActiveSync连接到PC机上的。

首先启动ActiveSync,然后单击“文件”选择“连接设置”,如图所示

10.jpg

然后会出现如图所示的对话框,在该对话框中钩选“允许连接到以下其中一个端口”然后选择 “DMA”,再单击“确定”按钮。

11.jpg

此时已经完成了ActiveSync端的设置,现在来配置“仿真设备管理器”。

首先选择好要与计算机进行同步的那个模拟器,然后鼠标右键点取它,选择“Cradle”选项。

12.jpg

此时ActiveSync会自动与设备进行连接并同步。

13.jpg

转载自:http://www.supinfo-projects.com/cn/2006/winmobile_cn/3/

模拟Windows Mobile平台相关推荐

  1. 《Windows Mobile平台应用与开发》写作工作顺利进行中

    <Windows Mobile平台应用与开发>(书名暂定)是由微软(中国)公司发起,人民邮电出版社负责出版发行,聚集众多Windows Mobile领域的MVP.开发技术专家和技术讲师共同 ...

  2. Windows Mobile 平台EDB 数据库的应用与开发

    Windows Mobile 平台EDB 数据库的应用与开发 2011年04月26日 Windows Mobile [b]平台[/b]EDB [b]数据库的应用与开发 [/b] 程乐乎 1,邹仕洪1, ...

  3. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x

    收集整理一些Windows Mobile 6.x开发相关文章, 文章及相关代码大部分搜集自网络,版权属于原作者! 智能手机      手机词汇      研发手机基本流程 WAP协议分析(1)     ...

  4. Windows Mobile下访问Sqlite的Native C++封装

    背景 当前移动设备开发领域,在本地数据存储方面,Sqlite几乎成了事实标准,Andriod (android.database.sqlite),iPhone (SQLite for iPhone S ...

  5. Windows Mobile 5.0 中为开发人员提供的新功能(3)

    Windows Mobile 5.0 中为开发人员提供的新功能(3) Pocket Outlook 增强功能 Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM.将 Poc ...

  6. [整理]Windows Mobile(.NET CF)开发的书籍

    Microsoft Mobile移动开发宝典(微软技术丛书) 基于.NET CF 2.0,C#语言 内容比较全面,写得较详细,整体感觉不错. Microsoft. NTE Compact Framew ...

  7. Windows Mobile的高效贴图

    Windows Mobile的高效贴图 原文:http://www.cppblog.com/guogangj/archive/2010/06/20/118316.html 位图这个概念对于计算机图形学 ...

  8. 熊猫烧香演神话——在Windows mobile手机中运行

    朋友发来个一个链接,看完差点吐了 [url]http://publish.it168.com/2007/0201/20070201036001.shtml[/url] 地球人都知道,最近俺中国有个烧香 ...

  9. Windows Mobile logo测试介绍

    首先声明本文转自:http://softtest.chinaitlab.com/sji/744369.html 一.Windows Mobile简介 Windows Mobile是微软主要针对手机市场 ...

最新文章

  1. main_loop()函数解析(1)
  2. SQL中EXISTS的用法(转)
  3. Windows下DNS ID欺骗的原理与实现
  4. 程序员加班到凌晨,第二天却被开除,了解原因后大家都说大快人心
  5. 转:获得数据库自增长ID(ACCESS)与(SQLSERVER)
  6. 【推荐实践】推荐系统中模型训练及使用流程的标准化
  7. NVIDIA驱动本来好好的,过几天就无法连接NVIDIA,出现NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA
  8. 算法复杂度与NP问题
  9. 设置Session超时的三种方法
  10. Scratch-Q版三国小人物角色素材分享,值得您的收藏!
  11. Linux logviewer的功能,文本日志查看器(LogViewer Pro)
  12. 顶顶通软电话介绍-一个网络电话客户端(SIP软电话)
  13. cmos电路多余输入端能否悬空_CMOS电路多余输入端悬空,会造成逻辑混乱,该如何处理?...
  14. 计算机专业简历教育背景怎么写,简历中的教育背景应该怎么写
  15. Android MediaProjection 代码分析
  16. c语言捉迷藏,捉迷藏
  17. 汉语拼音的模糊音扩展(用于搜索纠错)
  18. pytorch升级conflict
  19. java parcelable_Android中Parcelable的作用实例解析
  20. mysql字段和域_Word域与数据库的结合编程

热门文章

  1. 要看计算机的cpu型号和内存大小,怎样查看电脑的CPU型号和存储空间
  2. Thinkpad E580 安装Win7后无声音
  3. ANDROID 开发一个新闻阅读器之新闻列表
  4. 20个示例!详解 Java8 Stream 用法,从此告别shi山(垃圾代码)
  5. 2019年 五月份ccpc湘潭、icpc西安南昌邀请赛总结
  6. 穿墙雷达中基于快速墙体时延估计的点目标后投影算法附matlab代码
  7. 卜若的代码笔记-Deeplerning-第四章:双层浅层神经网络
  8. 数据结构:二叉搜索树的增删查改
  9. ppt 2010 动画窗格 组合元素 使用方法
  10. 360safe3.php讲解,Safe3的教程