您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

Windows Mobile 6 中为开发人员提供的新功能(三)

发布日期:2011-04-21

  Visual Studio 2005 设计时支持
  Visual Studio 2005 窗体设计器提供了快速易用的应用程序用户界面构建机制。使用该设计器时,在创建和修改窗体外观后能够立即看到结果。这种所见即所得 (WYSIWYG) 设计时体验并不限于采用静态用户界面的应用程序。Visual Studio 2005 窗体设计器能够识别外观造型,因此可以通过它查看应用程序窗体在不同外观造型上的外观。此项功能节约了大量时间,因为它使您不必执行应用程序就能看到其在不同外观造型上的效果。
 
  要查看从纵向向横向旋转时窗体的显示效果,可以右键单击窗体,然后将窗体向右或向左旋转 90 度。可以再次单击窗体,将其旋转回纵向显示。图 16 显示了 Visual Studio 2005 窗体设计器中一个从纵向向横向旋转的窗体。

.

图 16. 使用 Visual Studio 2005 窗体设计器查看从纵向向横向旋转时窗体布局的变化

  为查看其他显示尺寸和显示分辨率变化的效果,Visual Studio 2005 提供了一个仅限设计时使用的属性“外观设置”。
 
  选择新的“外观设置”值时,Visual Studio 2005 窗体设计器会按窗体在所选外观造型中出现时的样子显示窗体。图 17 显示了图 16 中的窗体在选择“Windows Mobile 6 Professional Square”(Windows Mobile 6 专业方形)外观设置时的样子。请注意,其中添加了滚动条以显示窗体底部的控件。

.

图 17. 在 Visual Studio 2005 窗体设计器中的正方形外观设置内查看图 16 中的窗体

  运行时和 API 支持
  支持设备外观造型上的差异是 Windows Mobile 应用程序开发至关重要的基础。为帮助您实现对设备外观造型差异的支持,.NET Compact Framework 2.0 类和运行时提供了对动态响应设备外观造型变化的内置支持。与此类似,本机应用程序开发人员也有几个能够提供类似支持的 API。
 
  托管应用程序
  .NET Compact Framework 2.0 提供了几个针对托管应用程序的新功能,它们使运行时能够自动调整控件的大小和位置:控件停靠、控件定位、自动滚动和自动缩放。停靠控件靠着其父控件的一条边放置,并沿该边填满整个区域。为响应显示尺寸上的差异,控件会自动调整其大小以始终填满父控件的整条边。请参阅本文前面图 11 中停靠控件的示例。
 
  定位控件在该控件的一条或多条边与父控件的边之间保持固定距离。为响应显示尺寸上的差异,定位控件会自动调整其自身的大小,以在控件的定位边与父控件的边之间保持适当的距离。本文前面的图 12 中显示有定位控件。
 
  .NET Compact Framework 2.0 通过 Form 控件上的 AutoScroll 和 AutoScaleMode 属性提供自动滚动和自动缩放功能。当窗体的 AutoScroll 属性设置为 true 时,在显示尺寸的变化导致看不到窗体的某些控件时,窗体会自动添加滚动条。设备外观造型差异并不限于尺寸的变化,不同设备外观造型的分辨率也可能不同。设备分辨率上的差异可能导致应用程序窗体的控件显得非常小或非常大。通过将窗体的 AutoScaleMode 属性设置为 AutoScaleMode.Dpi,窗体控件会自动缩放其大小,以便能够在不同的显示分辨率下正确地显示。
 
  本机应用程序
  Microsoft C++ 提供了二十多个函数和宏,用于处理与适应设备显示差异有关的常见任务,尽管这对 Windows Mobile 6 而言并不是什么新功能。可以在位于 %Program Files%\Microsoft Visual Studio 8\ VC\ce\atlmfc\include 文件夹的 DeviceResolutionAware.h 头文件中找到它们。表 5 只显示了上述函数和宏中的几个。
表 5. 可以协助适应设备显示差异的部分自有函数和宏
函数或宏 说明

GetDisplayMode

返回标识当前显示方向为纵向、横向还是正方形的值。

SCALEX、SCALEY、SCALERECT、SCALEPT

根据需要调整该值以适应当前显示分辨率。

StretchIcon

调整图标的大小以适合当前显示区域。

RelayoutDialog

将数据从一个对话框复制到另一个对话框,当用户在显示对话框的情况下更改设备显示方向时会有帮助。这使应用程序能够显示另一个与原始对话框具有相同控件的对话框,但其尺寸更适合于当前分辨率。

FixupDialogItem

解决应用程序更改对话框大小时会发生的常见问题;例如,在 ListBox 控件或 ComboBox 控件的选择滚动出显示区域时将其滚动进视野内。

 
 
  支持资源
  为减少将外观造型适应能力纳入应用程序所花费的时间,Microsoft 提供了几个资源来为您提供协助。这些资源对实现应用程序时需要遵循的许多最佳实践做了说明。这些资源还提供了一些有效代码,能够处理与处理设备差异有关的许多常见问题。不仅可以将该代码用作如何解决设备外观造型差异的示例,还可以将该代码纳入到应用程序中并立即加以利用。
面向托管应用程序开发人员的资源
  Microsoft 模式和实施方案小组为托管应用程序开发人员提供了移动客户端软件工厂。移动客户端软件工厂是用于应对移动开发人员面临的许多最常见情况的最佳实践、源代码、组件和示例的组合。针对处理设备外观造型差异的问题,移动客户端软件工厂提供了 OrientationAwareControl。OrientationAwareControl 与 Visual Studio 2005 协同工作,让您可以为包含一个或多个子控件的控件建立图形化布局;控件布局定义的一部分工作便是为每个不同的外观造型定义不同的布局。
 
  使用 OrientationAwareControl 时,首先按照希望控件在一种外观造型中出现时的样子定义控件布局。然后在 Visual Studio 2005 中更改外观造型,以了解使用新外观造型查看时控件的外观。如果对在新外观造型上查看的控件外观不满意,可以调整控件的新外观造型布局而不影响控件原始外观造型的布局。控件会为每个不同的外观造型保留单独的布局信息,供在运行时使用。应用程序运行时,OrientationAwareControl 会以适合于当前外观造型的布局呈现。例如,如果应用程序是在显示尺寸为 240x320、分辨率为 96 dpi、方向为纵向的设备上运行,则 OrientationAwareControl 会使用您为 240x320 显示尺寸、96 dpi 分辨率和纵向方向定义的布局。如果用户将设备方向旋转为横向,则 OrientationAwareControl 会以为 320x240 显示尺寸、96 dpi 分辨率和横向方向定义的布局进行显示。对于显示分辨率和尺寸变化,OrientationAwareControl 的作用方式类似。
 
  另一个面向托管应用程序开发人员的重要资源是移动行业 Solution Accelerator 工具包。该工具包为 LOB 开发人员提供了演示如何构建 Windows Mobile LOB 应用程序的资源。该工具包包括带有详尽注释的完整源代码、示例数据库和 100 多页的文档。该工具包包括以不同角色的用户(包括客户服务、仓库工人和送货司机)为目标用户的应用程序组件。除了提供应用程序开发指导外,该工具包还包括在企业规模上成功部署移动 LOB 应用程序的最佳实践。
 
  面向本机应用程序开发人员的资源
  Windows Mobile 6 SDK 包括供本机应用程序开发人员使用的 UILayout 示例。此示例演示了如何实现用户界面会自动调整以适应设备显示差异的本机应用程序。该示例的 ScreenLib 类通过它提供的许多方法(包括用于停靠控件、定位控件、对齐控件、优化应用程序控件布局的方法及众多其他方法)完成大量与用户界面有关的工作。ScreenLib 类以可重用性为设计宗旨,因此可以将该类直接纳入到自己的应用程序中,利用它提供的众多功能。
 
  常规资源
  有关构建能够在全系列 Windows Mobile 设备外观造型上有效工作的应用程序的最新信息,请访问 Windows Mobile 调整您的应用程序页面。“Windows Mobile 调整您的应用程序”页面是您的一站式资源库,它提供了与开发可调整式 Windows Mobile 应用程序有关的所有内容(包括白皮书、网络广播、公告及其他内容)。
 
  增强用户体验
  Windows Mobile 6 提供了专注于增强用户体验的新功能。这些功能通过提供新的用户交互方式和新的设备状态变化响应方式,为开发人员提供了改进其应用程序可用性的机会。
 
  改进了外观
  Windows Mobile 6 彻底重构了设备外观。显示比旧版本要清晰和简洁得多。进行了最显著改动的其中一个地方是 Pocket Outlook 屏幕。这些屏幕不仅提供了更加清晰和简洁的显示,还简化了信息的查看和导航。只需在 Windows Mobile 6 设备上运行,不必做任何更改,您的应用程序就会从上述的大部分改进中受益。
 
  Windows Mobile 提供了许多标准对话窗体,包括联系人选择对话框和消息传送窗体。在您的应用程序中使用的这些标准对话框与在 Pocket Outlook 中使用的窗体相同,因此通过您的应用程序查看时与直接在 Pocket Outlook 中使用时它们都具有相同的改进后的外观。类似地,图片选择对话框也从整体显示改进中受益。对于使用 .NET Compact Framework 2.0 DocumentList 类以便用户查找和打开文件的应用程序,也是如此。图 18 显示了新的 Windows Mobile 6 图片选择对话框。

.

图 18. 新的 Windows Mobile 6 图片选择对话框

  类似地,图片选择对话框也从整体显示改进中受益。对于使用 .NET Compact Framework 2.0 DocumentList 类以便用户查找和打开文件的应用程序,也是如此。
 
  通过新的手写 API 提供新输入选项
  Windows Mobile 6 包括一个轻型版本的 Tablet PC WISP 手写 API,称为 WISP Lite。WISP Lite 为所有 Windows Mobile 6 Classic 和 Windows Mobile 6 Professional 设备带来了丰富的手写功能,强大而且灵活性高。WISP Lite 能够完全兼容 Tablet PC 手写数据,并包括用于手写内容收集、识别、呈现和手写数据管理的 API。WISP Lite 比以前的 RichInk 控件提供了高得多的保真体验。
 
  通过新的声音 API 提供增强的音频体验
  Windows Mobile 6 包括一组能够播放以前不支持的许多声音文件格式的新声音 API 集。新的声音 API 能够播放 MP3、MID、WMA 和 WAV 文件。为响应开发人员的要求,新的声音 API 包括了接受设备配置文件的选项,以使设备设置为静音或振动时不播放声音。
新的声音 API 包括用于检索与常见事件(例如,已知的呼叫方电话铃声或漫游电话铃声)关联的声音文件的函数;还可以更改与这些事件关联的声音文件。可按同步或异步方式播放声音文件;并可以选择让 API 在异步播放结束时通知应用程序。新的 API 还包括在 RAM、ROM 和安装的存储卡中搜索声音文件位置的函数。
 
  新的设备状态信息
  “状态和通知代理”使应用程序能够获知设备状态变化,并以智能方式对这些状态变化做出反应。除了 Windows Mobile 5.0 所支持的 100 多个“状态和通知代理”状态值外,Windows Mobile 6 额外又增加了几个状态值。Windows Mobile 6 提供了基于 Internet 协议语音 (VoIP) 电话呼叫的状态信息,包括电话号码、运营商名称以及其他信息。Windows Mobile 6 还添加了设备锁定的状态信息。现在提供了键盘锁定状态、设备锁定状态和 SIM 锁定状态变化的状态信息。
 
  开始构建 Windows Mobile 6 应用程序所需的内容
  着手开发面向 Windows Mobile 6 的应用程序是件容易的事。事实上,您多半已经具备了开发所需的大部分条件。
 
  要开发第一个 Windows Mobile 6 应用程序,需要安装几个软件。本部分介绍您需要的软件列表以及各软件是必备软件、建议安装的软件还是可选软件。还包括对各软件用途的简短说明。
必备软件 必备/可选 说明

Visual Studio 2005 Standard Edition、Professional Edition 或 Team System

必备

Visual Studio 2005 是用于创建 Windows Mobile 应用程序的开发环境。

Windows Mobile 6 Professional SDK 或 Windows Mobile 6 Standard SDK

必备

提供开发 Windows Mobile 6 应用程序所需的工具、头文件、仿真器映像和 Visual Studio 2005 项目类型。

ActiveSync 4.5 或更高版本 (XP) 或 Windows Mobile Device Center (Vista)

必备

提供插接 Windows Mobile 6 仿真器映像或设备所需的连接性。

Visual Studio 2005 Service Pack 1

可选 (Windows XP)

必备 (Windows Vista?)

纳入小的修正并更新 Visual Studio 2005 中所有面向数据的对话框,以显示 SQL Server Compact Edition 产品名称。对于 Windows Vista 用户,为使 Visual Studio 2005 能够在 Windows Vista 上运行,必须安装此服务包更新。

.NET Compact Framework 2.0 Service Pack 1

推荐

如果没有此服务包,则每次部署应用程序时,Visual Studio 2005 都会将 .NET Compact Framework 2.0 部署到 Windows Mobile 6 设备。还添加了对命令行调试的支持,并提供了新的实用程序来审查 .NET Compact Framework 2.0 运行时所提供的性能数据。

SQL Server 2005 Compact Edition Tools for Visual Studio 2005

可选

提供开发使用 SQL Server 2005 Compact Edition 的 Windows Mobile 6 应用程序所需的工具和程序集。安装此工具前,需要先安装 Visual Studio 2005 SP1。

.NET Compact Framework 2.0 Service Pack 1
 
  充分利用现有技能
  如果您曾经构建过 Windows 桌面计算机应用程序或服务器应用程序,即使您以前从未构建过 Windows Mobile 应用程序,您也已经拥有了着手开发 Windows Mobile 6 应用程序所必备的技能。使得着手构建 Windows Mobile 6 应用程序变得如此容易的一个因素是 Visual Studio 2005。在 Visual Studio 2005 中创建 Windows Mobile 6 应用程序与构建桌面 Windows 窗体应用程序非常类似。在开发 Windows Mobile 6 应用程序时,Visual Studio 2005 的行为和所提供的功能与在开发桌面应用程序时是相同的。
 
  托管应用程序开发
  如果您是托管应用程序开发人员,您会发现 .NET Compact Framework 2.0 提供了与创建桌面应用程序时使用的类相同的类,这些类是完整 .NET Framework 类的一个丰富子集。.NET Compact Framework 2.0 还提供了许多与构建桌面应用程序时所使用的 Windows 窗体控件相同的控件。这些控件所提供的体验是您开发桌面应用程序时所熟悉的相同体验。
 
  本机应用程序开发
  Windows Mobile 6 平台的核心 API 是 Win32,尽管它是一个子集,但与桌面计算机上的 Win32 是相同的。与此类似,活动模板库 (ATL) 和 Microsoft 基础类 (MFC) 都可用,二者都是其桌面计算机对应项的丰富子集。您还会发现,为桌面应用程序编写的许多 C\C++ 代码与 Windows Mobile 6 兼容。兼容性如此高是因为 Visual Studio 2005 为桌面应用程序和 Windows Mobile 设备应用程序使用了相同的前端 C\C++ 编译器。
 
  数据库应用程序开发
  您还会发现,可以将开发面向 SQL Server 2000 和 SQL Server 2005 的数据库应用程序的技能和经验轻松地转换为开发 SQL Server 2005 Compact Edition 应用程序的技能和经验。SQL Server Compact Edition SQL 语法与 SQL Server 2005 完全兼容。类似地,面向 SQL Server Compact Edition 的 ADO.NET 和 OLEDB 编程接口也与对应的面向 SQL Server 2005 的编程接口一致。甚至创建和管理 SQL Server Compact Edition 数据库的方式也让人觉得熟悉,因为创建和管理 SQL Server Compact Edition 数据库时所使用的 SQL Server Management Studio 工具与创建和管理 SQL Server 2005 数据库时所使用的 SQL Server Management Studio 工具是相同的。
 
  指导
  Microsoft 提供了许多资源,以为您提供在 Windows Mobile 6 平台上构建优质应用程序所需的指导。除产品文档外,还可以在许多位置找到有关 Windows Mobile 应用程序开发以及在 Windows Mobile 平台上成功开发的最佳实践的信息。
 
  MSDN上的 Windows Mobile 页面多半是最好的起步位置。它提供了有关 Windows Mobile 开发的最新信息。MSDN 上的 Windows Mobile 页面还包括指向其他资源(例如白皮书、有帮助的博客和网络广播)的指针。
 
  Microsoft 模式和实施方案小组在移动客户端软件工厂中为 Windows Mobile 开发人员提供了出色的指导。移动客户端软件工厂是一个综合性的面向 Windows Mobile 开发人员的最佳实践、示例、源代码和工具集。所论述的主题包括处理设备外观造型差异、离线数据管理、数据同步和管理大规模应用程序。
 
  Windows Mobile 是 MSDN Channel 9 站点上的一个社区支持的项目。Windows Mobile Wiki 是从其他开发人员的知识和经验中获益的极佳途径。您会发现该 Wiki 致力于解决许多最常见的问题。
 
  Windows Mobile 新闻组是一个社区支持的资源,可在其中提出有关 Windows Mobile 开发的问题,并让业界同行(包括许多 Windows Mobile Microsoft Valued Professionals (MVP))回答这些问题。
 
  Windows Mobile 调整您的应用程序页面提供了与开发能够在全系列 Windows Mobile 设备上工作的应用程序有关的问题的最新信息。您会发现专门针对这些问题的新闻、公告、网络广播的指针和白皮书的指针。
 
  结束语
  Windows Mobile 6 提供了开发人员开发和部署功能强大的移动行业应用程序所需的工具和功能。在所有 Windows Mobile 6 设备的 ROM 中加入 .NET Compact Framework 2.0 SP1 和 SQL Server 2005 Compact Edition 提供了一个功能强大的应用程序平台,它也使应用程序部署得到了简化。Device Emulator 2.0 和 Windows Mobile 6 SDK 附带的其他工具通过提供能够在多种 Windows Mobile 设备特征和外观造型上更轻松地测试应用程序的能力,简化了能够在许多不同设备上运行的应用程序的开发过程。Windows Mobile 6 SDK 中包括的 100 多个示例、模式和实施方案移动客户端软件工厂以及移动行业 Solution Accelerator 工具包的组合都是为了提供立即启动行业应用程序开发所需的指导。
 
  无论您是经验丰富的 Windows Mobile 开发人员还是正准备开发第一个 Windows Mobile 项目,您都会发现 Windows Mobile 6 是可用于行业应用程序开发的最佳 Windows Mobile 平台。