Jim Wilson,JW Hedgehog, Inc。 摘要 Windows Mobile® 6 开发人员平台版本侧重于几个核心目标:简化行业 (LOB) 应用程序开发和部署、安排构建单个应用程序的任务(该应用程序更易于在 Windows Mobile 系列中的许多不同设备上成功运行),并提供增强的用户体验。本文从开发人员的角度介绍了 Windows Mobile 6 的新功能及其用途。本文还介绍了 Windows Mobile 6 软件开发工具包 (SDK) 提供的许多新功能,并为开始开发 Windows Mobile 6 应用程序提供了一些指导。 适用于
本页内容
简介Windows Mobile 6 开发人员平台版本侧重于几个核心目标:简化 LOB 应用程序开发和部署、安排构建单个应用程序的任务(该应用程序更易于在 Windows Mobile 系列中的许多不同设备上成功运行),并提供增强的用户体验。 为实现这些目标,Windows Mobile 6 以 Windows Mobile 的先前版本(特别是 Windows Mobile 5.0)为基础而构建。Windows Mobile 5.0 提供了许多平台增强功能和工具增强功能,用作 Windows Mobile 6 应用程序开发的基础。 如果您不熟悉 Windows Mobile 5.0 或者想要复习一下 Windows Mobile 5.0,请查看“Windows Mobile 5.0 中为开发人员提供的新功能”。在“Windows Mobile 5.0 中为开发人员提供的新功能”一文中讨论的功能、工具和 API 同样适用于 Windows Mobile 6。 本文从开发人员的角度介绍了 Windows Mobile 6 的新功能及其用途。本文还介绍了 Windows Mobile 6 软件开发工具包 (SDK) 提供的许多新功能,并为开始开发 Windows Mobile 6 应用程序提供了一些指导。 以下所列内容简要介绍了 Windows Mobile 6 和 Windows Mobile 6 SDK 中与开发人员最为相关的一些功能。 简化的行业应用程序开发和部署
更易于构建一个在许多设备上运行的应用程序
增强的用户体验
了解 Windows Mobile 6 命名约定从引入最初的 Pocket PC 设备至今,多年来移动设备已有了很大改进。如今,有许多不同的设备类型和外观造型可用,每个都有其各自的优势。过去,设备类型之间有明显的差别;而如今,区分这些设备的界限已日益模糊。传统术语(例如 Pocket PC、Smartphone 和 Pocket PC Phone Edition)的说明性可能不强,而且有时会导致混淆。为使设备间的功能和关系更清晰,Microsoft 将为所有版本的 Windows Mobile 6 操作系统引入新的命名约定。表 1 显示了 Windows Mobile 5.0 和 Windows Mobile 6 操作系统命名约定之间的关系。
新的命名约定从应用程序角度侧重于每个版本的功能,而不是侧重于设备硬件。 如果您以前开发过 Windows Mobile 应用程序,则会在所有 Windows Mobile 系列设备上感受到完全相同的开发人员体验;在整个 Windows Mobile 系列中均使用 API、工具和实用程序的公用集。在各种 Windows Mobile 设备中,存在差异的一个功能是触摸屏支持。Pocket PC 和 Pocket PC Phone Edition 设备具有触摸屏,因此支持直接屏幕输入;而 Smartphone 设备没有触摸屏,因此不支持直接屏幕输入。 为了与此关键差别更一致,Windows Mobile 6 SDK 不再像早期版本的 Windows Mobile SDK 那样,以特定的设备类型为目标。而是使用两个版本的 Windows Mobile 6 SDK 区分具有触摸屏的设备和不具有触摸屏的设备。使用 Windows Mobile 6 Professional SDK 为具有触摸屏的设备开发应用程序,这些具有触摸屏的设备过去称为 Pocket PC 或 Pocket PC Phone Edition。使用 Windows Mobile 6 Standard SDK 为不具有触摸屏的设备开发应用程序,这些不具有触摸屏的设备过去称为 Smartphone。表 2 显示了 Windows Mobile 6 SDK 和 Windows Mobile 6 设备之间的关系。
注意,Windows Mobile 6 Classic 和 Windows Mobile 6 Professional 设备具有触摸屏,二者均使用 Windows Mobile 6 Professional SDK;而 Windows Mobile 6 Standard 设备不具有触摸屏,它使用 Windows Mobile 6 Standard SDK。 强大的 Windows Mobile 5.0 兼容性Windows Mobile 6 可以很好地与 Windows Mobile 5.0 应用程序兼容。与 Windows Mobile 5.0 兼容是 Windows Mobile 6 的明确目标,且已在整个 Windows Mobile 6 开发过程中进行了大量测试。绝大多数 Windows Mobile 5.0 应用程序都将在 Windows Mobile 6 设备上运行而无需进行修改。但需注意的是,兼容性的前提是应用程序使用受支持的 API。如您所猜想的那样,使用未记录或不受支持的 API 的 Windows Mobile 5.0 应用程序可能会遇到兼容性问题,而使用受支持的 API 的应用程序却不会遇到这些问题。 Windows Mobile 6 为 Windows Mobile 5.0 应用程序提供了强大的兼容性,允许您使用 Windows Mobile 5.0 SDK 或 Windows Mobile 6 SDK,构建针对 Windows Mobile 5.0 和 Windows Mobile 6 设备的单个可执行程序。这些应用程序将在 Windows Mobile 5.0 上顺利地运行,并将在 Windows Mobile 6 上更好地运行,这是因为 Windows Mobile 6 进行了许多改进,例如将 .NET Compact Framework 2.0 和 SQL Server Compact Edition 合并到 ROM 中。 简化应用程序开发Windows Mobile 6 SDK 提供了使用 Microsoft Visual Studio® 2005 开始开发 Windows Mobile 6 应用程序时所需的工具和库。将 Visual Studio 2005 和 Windows Mobile 6 SDK 结合在一起,可在提供一些比以往更轻松地开发 Windows Mobile 应用程序所需的工具和功能的同时,创建一个功能强大的移动设备开发平台。 工具本部分介绍 Windows Mobile 6 SDK 所提供的新开发工具,以及每个工具在应用程序开发过程中所起的作用。 Device Emulator 2.0仿真程序始终都是移动应用程序开发的重要部分,允许您测试应用程序而无需访问物理设备。您能使用仿真程序(无需访问真实设备)进行的测试越多,工作起来就越轻松、迅速,并且花费也更少。Device Emulator 2.0 作为 Windows Mobile 6 SDK 的一部分而安装,它建立在 Device Emulator 1.0 的旧版基础之上,可通过模拟许多以前不具备的新设备状态和功能,利用真实的设备体验提供更高的保真度。正像 Device Emulator 1.0 那样,Device Emulator 2.0 是一款真正的 ARM 仿真程序。作为真正的 ARM 仿真程序,Device Emulator 2.0 运行与真实设备相同的可执行文件,因而无需为仿真程序管理真实设备所需的独立应用程序可执行文件。有了 Device Emulator 2.0,对于仿真程序和真实设备,只需要一组可执行文件即可。 Windows Mobile 6 SDK 安装过程自动使用 Device Emulator 2.0 替换 Visual Studio 2005 所安装的 Device Emulator 1.0。因此,所有 Visual Studio 2005 Windows Mobile 项目将使用 Device Emulator 2.0,并将能够利用 Device Emulator 2.0 提供的新功能和改进。 更快的执行速度应用程序测试中最大的阻力之一就是应用程序启动和执行速度缓慢。为减少由仿真程序性能导致的延迟,Device Emulator 2.0 已进行了重要优化。由于每个应用程序不同,因此很难说出有多少单个应用程序受仿真程序优化的影响,但是与 Device Emulator 1.0 相比,Device Emulator 2.0 最多可将性能提高 40%。 仿真效果更好的设备Device Emulator 2.0 增加了许多新的设备外观造型,使您可以在这些设备投入市场之前,就许多最新的设备外观造型测试应用程序行为。图 1 显示了设备仿真程序中的全新 320x320 显示器外观造型。320x320 显示器是 Windows Mobile 6 提供的新设备外观造型之一。 图 1. 设备仿真程序模拟新的 Windows Mobile 6 320x320 显示器外观造型 除许多新的 Windows Mobile 6 设备外,Device Emulator 2.0 还提供了一套丰富的 Pocket PC 2003SE、Smartphone 2003SE、Windows Mobile 5.0 Pocket PC 和 Windows Mobile 5.0 Smartphone 设备仿真程序。图 2 显示了设备仿真程序中的 Pocket PC 2003SE 设备和 Windows Mobile 5.0 Smartphone。 图 2. 模拟 Pocket PC 2003SE 和 Windows Mobile 5.0 Smartphone 的设备仿真程序 无论 Device Emulator 2.0 是模拟新 Windows Mobile 6 设备还是模拟旧式设备之一,该仿真程序都仍然提供本部分所讨论的所有新功能。 电源状态仿真就本质而言,移动设备大部分时间使用的是电池电源,只是偶尔连接交流电源。当设备的电池电量级别变得非常低时,应用程序可能需要采取特定操作,以避免在全部电池电量耗尽时丢失数据。现在,为了能够测试电源状态变化对应用程序的影响,Device Emulator 2.0 引入了电源状态仿真。 图 3. 设备仿真程序的电源状态配置控制 如图 3 所示,仿真程序配置对话框允许您通过选中或清除“电池:”复选框,在使用电池电源和连接交流电源两种仿真程序状态之间进行切换。当状态为使用电池电源时,还可以设置电池电量级别百分比。仿真程序同设备一样,对这些电源状态和电量级别方面的变化做出反应。仿真程序显示相应的图标和消息;它还触发相应的“状态和通知代理”事件。 电话情景模式仿真Device Emulator 2.0 支持三个新的电话情景模式:耳机、扬声器和车载套件。如图 4 所示,通过选中仿真程序配置对话框上的相应复选框,可以启用这些情景模式中的每个情景模式。选中情景模式复选框时,仿真程序的行为就好像您已插入了耳机、启用了扬声器或连接了车载套件一样,并会触发所有相应的“状态和通知代理”事件。 图 4. 设备仿真程序的情景模式配置控制 蜂窝仿真程序现在使用的大多数 Windows Mobile 设备都有电话和其他无线通信功能。在很多情况下,您都可能希望应用程序与这些通信功能交互。您可能只是想在电话响铃的时候,将应用程序播放的音乐的音量减小;或者,可能需要加入一些涉及与通信硬件更密切地合作的更为复杂的功能。无论哪种情况,开发这些类型的应用程序在过去一直都很困难,而最大的难点在于测试此类应用程序。 为了解决测试此类应用程序的困难,Windows Mobile 6 SDK 包含了蜂窝仿真程序。利用蜂窝仿真程序,您可以在设备仿真程序内测试应用程序在不同蜂窝通信情况下的行为。图 5 显示了蜂窝仿真程序。 图 5. 利用蜂窝仿真程序可以在设备仿真程序内测试电话和通信行为 蜂窝仿真程序是一个功能强大的工具,可用来测试当蜂窝通信的状况变化时应用程序的行为。蜂窝仿真程序允许您执行一些简单的测试,例如通过仿真程序拨打电话、接听来电和挂断电话等。它还为 SMS 消息提供类似功能。对于需要测试更复杂功能的开发人员而言,蜂窝仿真程序还支持修改 SIM 配置以及模拟 2G 网络和 3G 网络之间的切换。所有这些测试不需要物理设备便可完成。 要将蜂窝仿真程序和设备仿真程序一起使用,首先需要将蜂窝仿真程序与设备仿真程序相关联。创建关联非常容易。
当仿真程序完成重置过程后,您会看到仿真程序现在显示蜂窝服务可用。 图 6. 输入蜂窝仿真程序端口号以便为设备仿真程序启用蜂窝服务仿真 FakeGPS广泛使用的低成本全球定位系统 (GPS) 设备与 Windows Mobile 5.0 中引入的易于使用的 GPS 中间驱动程序相结合,为开发人员提供了轻松定位他们的应用程序的机会。在挑战定位应用程序的历史过程中,人们一直在寻找一个好的方法来对它们进行测试。Windows Mobile 6.0 通过 FakeGPS 实用程序解决了此问题。 FakeGPS 实用程序允许您轻松地测试定位应用程序,而无需访问活动的 GPS 设备或活动的 GPS 源。您可以创建一个包含 GPS NMEA 消息列表的简单文本文件,将该文本文件复制到您设备上的 \Program Files\FakeGPS\GPS 文件夹中,然后启用 FakeGPS。以下是示例 FakeGPS 输入文件的一部分。 $GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21 $GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E $GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77 $GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42 $GPGSV,3,3,9,134,0,0,0*46 $GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21 $GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75 $GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21 $GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E $GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A FakeGPS 与 GPS 中间驱动程序结合使用,将来自该文本文件的消息路由到读取 GPS 源的所有应用程序。因为 FakeGPS 实用程序直接使用 GPS 中间驱动程序,所以您可以使用它在真实设备和设备仿真程序上测试您的应用程序,而无需对程序进行任何修改。要激活 FakeGPS 数据源,请使用 FakeGPS 实用程序选择所需的输入文件,然后选择图 7 所示的“启用”选项。 图 7. 设置 FakeGPS 源以启用定位应用程序的测试 安全配置管理器如果您辛辛苦苦地开发出应用程序,但在用户设备上安装时却突然失败,没什么比这更令人沮丧的了。不幸的是,如果您未对在最终用户设备的安全设置下运行的应用程序进行测试,有时会发生此情况。避免产生安全相关问题的最佳方法是将安全规划作为应用程序设计、开发和测试过程的一个核心部分。这正是安全配置管理器的用途。 设备安全管理器运行在台式机上,提供两个基本服务。设备安全管理器显示当前连接到台式机的设备或仿真程序的当前安全设置(在 Windows XP 上通过 Microsoft ActiveSync® 连接,在 Vista 上通过 Windows Mobile Device Center (WMDC) 连接)。显示的信息包括设备安全策略、各个安全设置的列表,以及安装到每个设备证书存储中的证书的列表。 设备安全管理器还允许您使用公共安全策略配置仿真程序,从而允许您充分地测试不同安全策略对您应用程序的影响,而无需真实设备。图 8 显示了刚刚将仿真程序配置为具有一层提示安全策略后的设备安全管理器。 图 8. 更新仿真程序安全策略后的安全配置管理器 使用设备安全管理器,可以充分利用仿真程序轻松地对应用程序进行测试,同时确保应用程序在不同安全策略下按预期方式运行。 注意: 有关 Windows Mobile 安全性的详细信息,请参阅 Windows Mobile 开发人员中心或 Mobile2Market 常见问题。 CabSignTool在分发应用程序之前,您通常必须使用相应的证书来签署应用程序可执行文件和安装文件,以便将您的组织标识为该应用程序的发布者。由于安全原因,必须签署用于安装该应用程序的所有应用程序可执行文件(*.dll 和 *.exe)以及 CAB 文件。签署每个单独的可执行文件、构建 CAB 文件,然后再签署 CAB 文件,这个过程很费时,尤其是在应用程序由几个可执行文件组成时。CabSignTool 实用程序是一个命令行实用程序,它将您从签署应用程序的各个部分的繁琐工作中解脱出来,从而简化了应用程序签署过程。 CabSignTool 实用程序一次可以签署一个 CAB 文件和所有包含的可执行文件。您只需构建应用程序可执行文件并创建 CAB 文件,而无需签署所有文件。CabSignTool 实用程序然后将 CAB 文件内容分解、签署每个可执行文件、重新组合并入了可执行文件的已签署版本的 CAB 文件,然后签署该 CAB 文件。CabSignTool 实用程序可以让您选择是使用单个证书同时签署 CAB 文件和可执行文件,还是使用不同的证书分别签署可执行文件和 CAB 文件。 Hopper设备上的移动应用程序往往持续运行数周或数月而不关闭。在这么长的时段内长时间使用应用程序有时可能会暴露应用程序中的一些问题,而这些问题通过传统的应用程序测试是难以发现的。要发现这些问题,必须在测试周期过程中使应用程序承受其在部署后将会经历的同样类型的压力。Hopper 实用程序提供了一种执行此类压力测试的方法。 Hopper 实用程序模拟用户在应用程序内的随机位置执行快速单击操作。这会使应用程序承受巨大的压力,其所执行的非结构化应用程序使用程度能够暴露执行传统应用程序功能测试时不易发现的应用程序错误。Hopper 实用程序可用于对单一应用程序进行压力测试,或是在纳入更大随机性的情况下(除了在各个应用程序内随机执行单击操作外,还随机在应用程序之间进行切换)同时对几个应用程序进行压力测试。应在所有的应用程序测试中都使用 Hopper 实用程序。同样是这个实用程序,也可用于测试 Windows Mobile 设备来确保设备的稳定。在测试中使用 Hopper 实用程序不仅可以验证应用程序的稳定性,还可以验证应用程序并未给设备带来不稳定性。 Local Server FrameworkLocal Server Framework 是一些工具和类,它们专为简化对依赖与远程服务器通信的移动应用程序进行测试而设计。为了帮助简化移动应用程序的开发,可以通过 Local Server Framework 建立一个虚拟网络和服务器,接收应用程序发出的网络调用并返回程序所要求的结果。通过使用受到良好控制的本地服务器环境,可以更轻松地将移动应用程序中由外部网络导致的问题或服务器问题与程序中发生的那些问题加以区分。 示例Windows Mobile 6 SDK 提供了几个您可能会觉得有帮助的示例。这些示例涉及在开发 Windows Mobile 6 应用程序时可能会遇到的大部分主题,可以通过它们节省大量时间,还可以将它们作为学习工具。以下是几个最值得注意的示例。 UILayout本示例展示了如何构建能够动态地适应设备外观造型差异的自用应用程序。本示例涉及如何整合停靠、定位和其他显示管理功能。本示例还包含一个用于封装此显示逻辑大量内容的类 ScreenLib。ScreenLib 类以可重用性为设计宗旨,可以轻松地调整它来适应您自己的应用程序。 RingtoneManager本示例展示了新 Windows Mobile 6 声音 API 的使用。 BasicRecognition、InkNotes 和 InkSerialization这些示例展示了 WISP Lite API 的几种用途。所涉及的主题包括对基于手写的输入执行文本识别、在应用程序内使用基于手写的输入以及将手写内容存储在文件中。 GPS本示例展示了如何在托管应用程序内访问 GPS Intermediate Driver。该示例包括用于从托管应用程序提取本机调用详细信息的所有必需包装方法。 .NET Compact Framework 2.0所有 Windows Mobile 6.0 设备的 ROM 中都包括 .NET Compact Framework 2.0 SP1。这使您可以充分利用 .NET Compact Framework 2.0 所提供的丰富功能以及在 .NET Compact Framework 1.0 基础上进行的众多改进,而不必关心是否需要将 .NET Compact Framework 2.0 运行时与应用程序一并加以部署。甚至连 .NET Compact Framework 1.0 应用程序在 Windows Mobile 6 设备上的运行情况都会得到改善,因为 .NET Compact Framework 1.0 应用程序与 .NET Compact Framework 2.0 完全兼容,所以能够在 Windows Mobile 6 设备上运行,而且不必对程序进行任何更改便可充分利用 .NET Compact Framework 2.0 的改进。.NET Compact Framework 2.0 进行了许多改进,这些改进旨在提高开发人员生产力、增强与完整 .NET Framework 的保真度和加大对设备功能的支持。本部分介绍 .NET Compact Framework 2.0 部分最值得关注的功能。 用户界面功能得到了改进尽管 .NET Compact Framework 2.0 的大量改进遍及各处,但许多最明显的改进都是针对与用户界面有关的功能。 Windows 窗体控件 控件是应用程序用户界面的构建基块。许多应用程序的可用性与应用程序对可用控件的利用情况有直接关系。.NET Compact Framework 2.0 提供了许多新的控件;这些新控件有助于简化应用程序用户界面设计以及为用户提供改进的体验。 MonthCalendar 和 DateTimePicker 控件 作为新控件的一部分,.NET Compact Framework 2.0 提供了两个用于显示和输入基于日期的信息的控件:MonthCalendar 控件和 DateTimePicker 控件。图 9 中显示了这两个控件。如果想要在应用程序中包括日历的外观并使其在窗体上始终可见,MonthCalendar 控件会有帮助。DateTimePicker 非常适合用于显示尺寸有限的移动设备;日期和时间信息显示在看似 TextBox 控件的控件中,但当用户需要输入数据时,DateTimePicker 控件会显示完整的日历。 图 9.MonthCalendar 控件和 DateTimePicker 控件。 WebBrowser 控件 对于想要整合基于 Rich HTML 显示的应用程序,.NET Compact Framework 2.0 提供了图 10 中所示的 WebBrowser 控件。WebBrowser 控件提供了许多事件,应用程序可以通过它们跟踪用户与 WebBrowser 控件内容的交互;必要时应用程序可以通过自定义行为响应用户交互事件。 图 10. 显示 Windows Live 移动搜索页面的 WebBrowser 控件 Notification 控件 Notification 控件是新控件中最值得关注的控件之一。可以使用 Notification 控件向用户显示消息,而不会更改用户当前活动的上下文。还可以通过 Notification 控件在弹出式气球中显示消息,这与 Windows Mobile 设备显示电池电量不足消息的方式类似。 来自:http://www.microsoft.com/china/MSDN/library/Mobility/pocketpc/bb278115.mspx?mfr=true |
Windows Mobile 6 中为开发人员提供的新功能(1)
2007年06月10日 星期日 10:29
转载于:https://www.cnblogs.com/zzq-gates/archive/2008/01/31/1059643.html