|
Microsoft 为那些创建面向 Windows Mobile 5.0 平台的应用程序的开发人员提供了许多工具和技术。这些工具简化了开发过程并提高了开发人员工作效率。本节将描述这些工具和技术。 Visual Studio Visual Studio 是 Windows Mobile 5.0 开发的首选工具,它提供了多产的开发体验以及与 Windows Mobile 5.0 平台的最完整集成。现代应用程序开发要求开发人员使用多种技能,因为这些应用程序通常必须混合使用服务器、桌面计算机和设备组件。在很多情况下,提供完整的解决方案还可能涉及到组合本机和托管代码。Visual Studio2005 是第一个使开发人员能够从单个工具中为上述所有环境进行生成、调试和部署的开发平台。适合于所有应用程序类型的单个开发工具为开发人员提供了一致的熟悉的开发体验,从而使其能够利用在开发人员培训和代码库方面的投资,而且还能更加有效地工作。 集成式本机开发 Visual Studio 包含对使用 C/C++ 开发设备应用程序的充分支持。它是 eMbedded Visual C++ 4.0 的后续开发环境。Visual Studio 向 C/C++ 设备开发人员提供了完整的工具集,并且支持以前可以通过 eMbedded Visual C++ 4.0 使用的相同向导和工具。Visual Studio 包含用于创建 MFC、ATL 和 Win32 项目的熟悉的应用程序向导。当开发人员向项目中添加类时,Visual Studio 为 ATL、MFC 和 C++ 提供了整套类向导。它还包含其他熟悉的工具,如设备交叉编译器、资源编辑器、调试器和模拟器。Visual Studio 还充分集成了设备 SDK。 除了向 C/C++ 开发人员提供熟悉的功能以外,Visual Studio 还引入了很多新功能,如智能感知、集成测试、对丰富的 Team System 功能集的访问等等。通过使用 Visual Studio,设备 C/C++ 开发人员自动拥有了对各种可以提高 Visual Studio 开发人员工作效率的功能的访问权限。 通过将设备 C/C++ 开发集成到 Visual Studio 中,开发人员现在能够对服务器、桌面计算机和设备应用程序使用单个技能集。开发人员不再需要为服务器和桌面计算机应用程序去了解一个工具,而为设备应用程序去了解不同的工具。这还意味着,在开发 C/C++ 设备应用程序时,桌面计算机开发人员不再需要放弃对于 Visual Studio 可用的丰富功能集和第三方工具。 这对于在设备上用本机和托管代码工作的开发人员而言,也是一个非常好的消息,因为他们现在也可以使用单个工具。对于需要创建本机和托管项目以作为单个应用程序的一部分的开发人员而言,甚至可以将本机和托管项目放到单个 Visual Studio 解决方案中。 移动设备 C/C++ 开发人员没有受到用 Visual Studio 开发 Windows Mobile 5.0 应用程序的限制。Visual Studio 支持从 Windows Mobile 和更高版本中为所有 Windows Mobile 平台开发本机移动设备应用程序。这意味着面向运行 Windows Mobile、Windows Mobile Second Edition 和 Windows Mobile 5.0 的 Pocket PC 和 Smartphone 设备的开发人员可以利用 Visual Studio。 Windows Mobile 5.0 将继续运行用 eMbedded Visual C++ 3.0 和 eMbedded Visual C++ 4.0 开发的应用程序。但是,使用这些工具的开发人员将无法直接面向 Windows Mobile 5.0 调试或部署他们的应用程序。只有 Visual Studio 支持直接面向 Windows Mobile 5.0 部署和调试应用程序。 集成式托管开发 对于使用托管代码的移动设备开发人员而言,Visual Studio2005 是取代 Visual Studio .NET2003 的首选工具。熟悉 Visual Studio .NET2003 的开发人员会发现 Visual Studio 提供了非常熟悉和一致的体验。 Visual Studio2005 为托管开发人员引入了 .NET Compact Framework2.0,并且提供了很多新的类和方法。它还包含很多针对运行库的增强功能(如改进的性能)以及对高级编程功能(如泛型和匿名函数)的支持。对于那些需要支持现有 .NET Compact Framework 1.0 应用程序或那些希望继续使用 .NET Compact Framework 1.0(由于它在 Windows Mobile 设备上的 ROM 中的广泛可用性)的开发人员,Visual Studio2005 继续支持 .NET Compact Framework 1.0,以便进行 Pocket PC 和 Smartphone 开发。 无论是开发 .NET Compact Framework 1.0 还是 2.0 应用程序,托管开发人员都可以充分利用 Visual Studio2005 的强大设备开发环境。.NET Compact Framework 1.0 和 2.0 都具有对上文描述的 Windows Mobile 5.0 托管 API 的完整访问权限。这些托管 API 是作为 Windows Mobile 5.0 操作系统的一部分予以合并的,并且不与任何版本的 .NET Compact Framework 相联系。 注有关 Visual Studio 中提供的新设备开发功能的详细信息,请参阅下一部分 — Visual Studio 设备开发。 Windows Mobile 5.0 将继续运行用 Visual Studio 开发的应用程序。但是,那些希望直接针对 Windows Mobile 5.0 调试或部署应用程序的开发人员必须使用 Visual Studio2005。只有 Visual Studio2005 支持直接针对 Windows Mobile 5.0 进行部署或调试。 Visual Studio 设备开发 Visual Studio 为那些以前使用过 eMbedded Visual C++ 或 Visual Studio .NET 的开发人员提供了一个一致、熟悉的开发环境。对 Visual Studio2005 开发环境的熟悉使开发人员可以立即应用他们现有的 eMbedded Visual C++ 或 Visual Studio .NET 技能来高效地工作,以便生成高质量的设备应用程序。 Visual Studio 还包含很多旨在改善开发人员工作效率和开发人员总体体验的增强功能。总之,Visual Studio2005 提取了 eMbedded Visual C++ 和 Visual Studio .NET 的最佳功能,并且将它们包装到单个软件包中。 适合于设备开发人员的新功能 除了将 eMbedded Visual C++ 和 Visual Studio .NET2003 中的很多熟悉的功能组合在一起以外,Visual Studio2005 还引入了很多新功能。这些新功能建立在最初由 eMbedded Visual C++ 和 Visual Studio .NET 提供的丰富开发环境之上,以便产生更加高效和多产的开发人员体验。本节概述这些新功能。 改进的用户界面设计器 不久以前,所有 Pocket PC 设备都具有相同大小的屏幕,并且所有 Smartphone 设备也都具有相同大小的屏幕。在这两种情况下,所有设备都总是显示为纵向模式。随着 Windows Mobile Second Edition 和 Windows Mobile 5.0 的先后引入,不同的设备开始支持不同的屏幕分辨率。例如,Pocket PC 现在支持的屏幕分辨率有 240 x 320、240 x 240、480 x 640 和 480 x 480。此外,设备还支持纵向、横向或方形显示,并且某些设备支持在纵向和横向布局之间动态更改的显示。为了简化设计面向这些更加丰富的显示选项的应用程序的过程,Visual Studio2005 已经向 UI 设计器中添加了多种新功能。 可以将 Visual Studio2005 托管 UI 设计器描述为“所见即所得”(WYSIWYG),它支持交互式设计体验,使开发人员可以在任何可用的 Windows Mobile 显示大小和方向下查看他们的应用程序窗体。图 4 显示一个 UI 设计器,它将窗体显示为纵向,并且显示 Rotate Right 菜单选项 — 该选项用于将 UI 显示旋转到横向。图 5 显示在用户已经选择 Rotate Right 以后,该 UI 设计器中的同一窗体。 ![]() 图 4. Visual Studio2005 托管 UI 设计器(纵向)。 ![]() 图 5. 旋转到横向的 Visual Studio2005 托管 UI 设计器。 为了简化能够支持多种屏幕分辨率的应用程序的开发过程,所有托管控件现在都具有更高的屏幕敏感性,并且支持锚定和停靠。锚定用于指定控件与窗体边缘保持固定的距离。当窗体大小和方向更改时,控件调整它的位置以便与窗体的边缘保持相同距离。开发人员可以将控件锚定到一个或多个边缘。 停靠控件可指定该控件直接针对该窗体的边缘确定自身的位置,并且该控件占据整个边缘。开发人员可以针对同一个边缘停靠多个控件,以便产生层叠效果。当用户旋转屏幕时,停靠的控件会自动调整以便始终占据指定的边缘。在图 5 中,当 UI 横向显示时,窗体底部的列表框被部分遮掩。停靠和锚定可以轻松地矫正这一问题。图 6 和 7 分别纵向和横向显示同一窗体。文本框和标签锚定到窗体的左上角,列表框停靠到窗体的下边缘。 ![]() 图 6. 纵向显示的窗体 — 控件利用了停靠和锚定。 ![]() 图 7. 横向显示的窗体(窗体和图 6 中的相同)。 对于面向 Pocket PC 和 Smartphone 的托管应用程序,Visual Studio2005 UI 设计器现在具有设备敏感性,并且完全了解这两种设备之间的屏幕和控件功能方面的差异。设计器工具箱会自动调整,以便只有适用于当前所选设备的控件可用。Visual Studio2005 甚至更进一步。开发人员完全可以将原来为 Pocket PC 设计的窗体从 Pocket PC 设计器拖到 Smartphone 设计器中,Visual Studio2005 会自动为 Smartphone 更新该窗体。Visual Studio2005 将调整控件大小,并且为不受 SmartPhone 支持的窗体控件提供适当的替代控件。 模拟器
![]() 图 8. Windows Mobile 5.0 Pocket PC 模拟器。 ![]() 图 9. Windows Mobile 5.0 Smartphone 模拟器。 一种真正的 ARM 模拟器 Visual Studio 引入了一种真正的 ARM 模拟器。作为真正的 ARM 模拟器,它提供了更多精确且完整的应用程序测试功能,从而提供了以前从未达到过的设备-模拟器一致性级别。ARM 模拟器运行相同的计算机指令,具有相同的内存布局,甚至使用与 ARM 设备相同的驱动程序。所有设备开发人员都会发现这些功能很重要,但 ARM 模拟器对于本机开发人员具有额外的好处,因为它使用与设备相同的二进制文件。不再需要为模拟器编译一组二进制文件,而为设备编译另一组二进制文件。通过在模拟器和设备上使用相同的二进制文件,开发人员可以减少开发时间并提供更精确的测试。 ActiveSync 支持
共享文件夹支持
丰富的显示和更多的串行端口
Device Emulator Manager
![]() 图 10. Device Emulator Manager 数据设计器 随着设备应用程序变得越来越复杂,它们的数据管理需要的复杂性也在日益增加。为了简化移动设备数据库的设计和维护,Visual Studio2005 提供了新的数据设计器。这些设计器为设备数据库提供了完整的生命周期管理,包括架构设计、表约束管理和数据填充。开发人员现在可以从他们的桌面计算机中执行所有数据库管理。 图 11 说明了如何使用 Create Table 数据设计器来创建新的数据库表。通过使用该设计器,可以添加列,包括设置它们的类型、数值范围、精度和 null 支持。您可以创建特殊值列(如 identity 和 rowguid 列),并且可以定义构成该表的主键的列。还有类似的用于修改架构、创建索引和填充数据库的设计器。通过使用如图 12 所示的数据库图表工具,您可以定义数据库关系和约束。您还可以使用设计器创建强类型的 DataSet。 ![]() 图 11. 使用“Create Table”数据设计器向设备数据库中添加表。 ![]() 图 12. 使用数据库图表工具定义表关系。 数据设计器提供了创建和管理数据库所需的所有工具。除了已经讨论的功能以外,您还可以使用设计器完成一些基本的管理任务,如压缩数据库或加密数据库内容。数据设计器的另一个重要功能是它们的连接性支持。无论数据库是位于桌面计算机中、包含在模拟器中还是位于实际设备中,数据设计器都可以同样出色地工作。无论您是要在桌面计算机上创建新的数据库并将其作为部署的一部分部署到数百个设备,还是要管理单个设备中包含的数据库的内容,该连接性支持都使您可以同样高效地工作。 数据设计器除了对在桌面计算机文件系统中以及直接在设备中管理数据库提供支持以外,还通过基于服务器的数据管理工具提供了一致的体验。已经使用过 SQL Server Enterprise Manager 或 Visual Studio .NET Server 工具的开发人员将发现数据设计器非常熟悉。开发人员现在可以跨所有数据库利用单个技能集,而无需考虑物理位置。 多平台开发 Visual Studio 的针对多平台项目的支持使面向多个设备平台变得空前容易。本机和托管项目现在都可以面向 Pocket PC 和 Smartphone 设备。这些项目使开发人员可以在保持不同的用户界面的同时,对这两种设备使用相同的代码。这些项目还可以跨越多个 Windows Mobile 版本。对于本机开发人员,Visual Studio2005 支持面向多个 CPU 类型。 改进的调试器 应用程序调试是开发体验的核心。对于 Visual Studio2005,设备调试器已经完全重构,以便在提供无与伦比的性能的同时,向设备开发人员提供最完整的可用调试功能集。 改进的调试器性能 开发人员需要花费大量时间来使用调试器,这一点毫无意外。可以将开发人员的总体工作效率的大部分直接与调试器的性能联系起来。这也就是完全重构 Visual Studio2005 调试器以提供比以往任何时候都更好的性能的原因。 调试器的整个控制和通信模型已经进行了修改,以便更为高效地在设备和桌面计算机之间分配工作负荷,以减少基于 CPU 的性能瓶颈。新的调试器通过大大减少桌面计算机和设备之间的通信量,进一步提高了性能。因为大多数开发人员使用 USB 2.0 连接进行调试,所以调试器也已经针对 USB 2.0 连接进行了优化。 进程附加 通过 Visual Studio2005,设备开发人员现在可以附加到和调试正在运行的进程。借助于这一功能,设备开发人员不再受到只能调试该调试器启动的应用程序的限制。开发人员现在可以调试可能由用户、系统或另一个进程启动的进程。该功能还通过标识在该调试器未启动的应用程序中发生的问题,改进了开发人员工作效率。现在,开发人员在识别问题时,可以在应用程序的当前状态下调试这些应用程序,而不必用调试器重新启动相应的应用程序,然后试图再现识别出的问题。 多进程调试 设备开发人员现在可以同时调试多个应用程序。随着多进程调试支持的引入,设备开发人员可以同时调试互相合作或依赖的设备应用程序,而无论这些应用程序是在同一设备上运行,还是在不同设备上运行。当开发人员调试正在模拟器上运行的应用程序时,该功能可以同样出色地工作。 对组合式本机和托管解决方案的支持 本机和托管代码都提供了很多独特的好处。当生成复杂的设备应用程序时,开发人员将本机和托管代码组合起来以利用二者的长处,这是一种常见的做法。对于 Visual Studio,开发人员可以创建同时包含本机和托管项目的单个解决方案。该支持显著简化了管理和测试应用程序组件的任务,因为开发人员可以将应用程序的所有部分作为单个单元进行管理。 添加了 CAB Designer Project 类型 对于应用程序的成功而言,正确的部署与合理的设计和编程同样重要。为了减少开发人员用来创建设备 CAB 安装文件的时间和精力,Visual Studio2005 引入了 CAB Designer Project。如图 13 所示,CAB Designer Project 使开发人员可以用图形方式设计 CAB 文件。借助于这一图形模型,开发人员只需要将部署文件与特定的文件夹相关联,并且进行任何必要的注册表修改 — 让 Visual Studio2005 完成实际构建 CAB 文件的工作。对于需要代码签名的应用程序,应用 Authenticode Signature 就像设置单个项目属性一样简单。 ![]() 图 13. Visual Studio2005 CAB Designer Project。 改进的智能感知 很久以来,智能感知一直是 Visual Studio 家族中最有效的工作效率工具之一,它显著减少了键入工作,为开发人员消除了查找方法参数列表的需要。在这些优势的基础之上,Visual Studio2005 通过使智能感知对上下文更加敏感,并且仅显示所面向的平台类型和成员,使其更进一步。 当特定平台不能支持所有可用控件时,该功能非常有用。例如,在面向 Smartphone 的项目中,只有那些对 Smartphone 有效的控件出现在智能感知中;然而,在面向 Pocket PC 的项目中使用相同的库时,智能感知会自动包括其他受支持的控件。 Windows Mobile 5.0 SDK Windows Mobile 5.0 SDK 可免费下载,它将 Windows Mobile 5.0 开发人员工具集成到 Visual Studio 中。Windows Mobile 5.0 SDK 提供了必要的模拟器、帮助文件、头文件和库,以使那些将应用程序面向 Windows Mobile 5.0 的开发人员可以利用该平台。表 11 总结了安装 Windows Mobile 5.0 SDK 的好处。
迁移到 Visual Studio2005 Windows Mobile 5.0 不需要开发人员将用 eMbedded Visual C++ 3.0、eMbedded Visual C++ 4.0 或 Visual Studio .NET 创建的现有应用程序升级到 Visual Studio。用上述工具生成的应用程序可以继续在 Windows Mobile 5.0 上运行。Windows Mobile 5.0 将这些应用程序视为“旧式”应用程序。如果没有明确指定这些应用程序具有分辨率敏感性,则它们会受到在本文的“分辨率和方向敏感性”部分中讨论的对应用程序显示进行的运行时修改的影响。这些现有的应用程序可能还具有需要开发人员给以特别关注的库或 API 依赖项,并且在部署到 Windows Mobile 5.0 设备时可能要满足严格的安全需求。 注Windows Mobile 5.0 包含对以前的 Windows Mobile 平台的重要更改,其中包括对已安装的库和安全模型的更改。建议正在考虑将现有应用程序部署或迁移到 Windows Mobile 5.0 的开发人员阅读 Windows Mobile Platform Migration FAQ for Developers。 尽管用 eMbedded Visual C++ 3.0、eMbedded Visual C++ 4.0 和 Visual Studio .NET 创建的应用程序可以继续在 Windows Mobile 5.0 设备上运行,但只有 Visual Studio2005 可以直接面向 Windows Mobile 5.0 设备或模拟器调试和部署应用程序。 将 Embedded Visual C/C++ 项目迁移到 Visual Studio Visual Studio 提供了一整套设备开发工具,以便改进由 eMbedded Visual C++ 3.0 和 4.0 提供的编译器和库。这些更改以及 eMbedded Visual C++ 和 Visual Studio2005 项目文件之间的差异要求对迁移到 Visual Studio2005 的现有 eMbedded Visual C++ 项目进行多处修改。 这些修改包括在 Visual Studio2005 中创建新的项目文件(可能基于 eMbedded Visual C++ 项目文件)以及将项目头文件和源文件添加到新的项目中。在完成这一工作之后,编译器和库中的差异可能要求对项目属性进行更改,而且在某些情况下,开发人员可能需要更改源代码本身。在很多情况下,源代码更改是新编译器提供的改进的 C++ 标准一致性的结果。 为了简化迁移,Visual Studio2005 提供了升级向导。开发人员可以使用该向导将单个项目或整个 eMbedded Visual C++ 工作区转换为 Visual Studio2005 解决方案。该向导是自动启动的,方法是使用 Visual Studio2005 的标准打开项目功能打开原始 eMbedded Visual 项目或工作区。 使用 Visual Studio2005 打开项目功能
注Visual Studio2005 就地执行项目升级,并且将原始头文件和源文件添加到新的项目中。强烈建议您在启动升级过程以前,生成 eMbedded Visual C++ 项目或工作区(包括所有相关文件)的备份。 升级向导执行下列任务:
升级向导旨在升级项目和工作区 — 该升级向导不会对源代码进行任何更改。在升级向导完成以后,下一步是编译代码并纠正任何编译问题。 将 Visual Studio2003 项目迁移到 Visual Studio2005 将项目或解决方案从 Visual Studio .NET2003 迁移到 Visual Studio2005 的托管开发人员应该发现该过程相当顺利。Visual Studio2005 提供了升级向导,以便自动将项目设置转换为 Visual Studio2005 中的等效值。它还自动将项目源文件添加到刚刚创建的项目中。该升级向导不会对源代码文件进行任何更改。强烈建议开发人员在执行升级之前备份整个项目或解决方案,包括所包含的所有文件。 强烈建议那些要将 Visual Studio .NET2003 项目迁移到 Visual Studio2005 的开发人员以及那些打算面向 Windows Mobile 5.0 的开发人员阅读 Windows Mobile Platform Migration FAQ for Developers,因为某些平台更改可能影响应用程序在 Windows Mobile 5.0 设备上进行安装和运行的能力。 远程工具 为了高效地开发设备应用程序,开发人员需要经常与目标设备交互。开发人员在开发应用程序的过程中执行的很多常见任务(如查看文件系统或修改注册表)可能难以直接在设备上执行。为了简化这些任务以及其他设备管理和监视任务,Visual Studio2005 提供了远程工具。 Visual Studio 远程工具是一组桌面计算机实用工具,它们提供了常见的设备监视和管理功能。表12 显示 Visual Studio2005 远程工具。通过使用这些工具,开发人员在监视和管理设备或模拟器时可以获得能够与他们的桌面计算机交互相媲美的简单性和效率。这些工具与 eMbedded Visual C++ 中随附的远程工具非常类似。但是,Visual Studio 是第一个同时向本机和托管开发人员提供这些实用工具的程序。
![]() 图 14. Visual Studio2005 Remote File Viewer ![]() 图 15. Visual Studio2005 Remote Process Viewer。 本机编译器和库 Visual Studio 为本机开发人员提供了很多重要的增强功能。这些增强功能包括编译器、标准 C 库、MFC 和 ATL。除了提供改进的应用程序质量以外,这些增强的版本与它们的桌面计算机对应组件具有更多的可比性 — 它们进一步提高了开发人员在桌面计算机和设备应用程序开发之间共享代码和技能的能力。 编译器 Visual Studio 向本机设备开发人员提供了一整套支持 ARM、MIPS、SH 和 x86 平台的新的设备交叉编译器。这些编译器已经完全用新的编译器前端(它基于最新的桌面计算机编译器)进行了重构。 常见的前端体系结构在桌面计算机和设备之间提供了更大的编译器行为一致性,从而使开发人员可以更为容易地迁移应用程序代码和他们的技能。转而进行设备开发的开发人员还可以保护现有的代码投资,并且最大限度地缓和他们的学习曲线。因为新的编译器前端是基于桌面计算机编译器的,所以很多桌面计算机编译器功能现在被合并到了设备编译器中。 由于合并了桌面计算机编译器功能,因此设备编译器能够提供很多以前无法得到的优化改进。除了编译器优化以外,设备开发人员现在还获得了链接时代码生成的好处。链接时代码生成为应用程序提供了进行比仅仅执行编译器优化更大的优化的机会,因为该优化可以跨编译模块(*.bin 文件)执行,从而有机会将程序作为一个整体进行优化。 编译器改进并不限于代码优化。因为设备编译器利用了桌面计算机编译器,所以它现在能够合并很多以前仅限于桌面计算机的功能。例如,设备编译器现在提供了更高级别的 C/C++ 标准一致性。同样,设备编译器现在能够提供显著增强的 Unicode 支持。 库 除了提供更新的编译器以外,Visual Studio2005 还提供了本机库的更新版本,包括标准 C++ 库 8.0 (SCL)、标准模板库 8.0 (STL)、Microsoft 基础类 8.0 (MFC) 和活动模板库 8.0 (ATL)。像编译器一样,上述所有库都已经进行了更新,并且现在基于它们的桌面计算机对应组件。尽管基于相应的桌面计算机库,但每个设备实现都是桌面计算机实现的子集。该子集基于大小方面的考虑、性能方面的考虑、基础操作系统功能的可用性和平台适应性。 使新的本机库基于它们的桌面计算机对应物,为设备开发人员提供了很多好处。最明显的好处是应用程序代码现在具有更高的可移植性,因为库本身的桌面计算机和设备版本具有更高的兼容性。这种可移植性也适用于开发人员的技能。过去,一些桌面计算机库比相应的设备实现更加稳定。更新的库现在为设备开发人员提供了最高质量的可用实现。 对于使用 MFC 或 ATL 的开发人员,需要记住的是,Windows Mobile 5.0 设备随附了安装在 ROM 中的 MFC 3.0 和 ATL 4.0。使用新的更新库 MFC 8.0 和 ATL 8.0 的开发人员必须确保将版本 8.0 库静态链接到他们的应用程序中,或者在他们应用程序的安装中包含版本 8.0 DLL。
其他影响开发人员的 Windows Mobile 5.0 更改
除了已经讨论的工具和 API 以外,Windows Mobile 5.0 还提供了很多改进。下表概述了一些附加的 Windows Mobile 5.0 功能。 ROM 中提供的软件 表 13 显示在所有 Windows Mobile 5.0 设备的 ROM 中提供的一些关键的开发人员库、控件和运行库。应用程序需要的以及该表中未列出的任何库、控件或运行库都必须显式安装到目标设备上。请注意,Windows Mobile 5.0 的 ROM 中未提供 .NET Compact Framework 2.0、SQL Mobile2005、MFC 8.0 和 ATL 8.0,因此您必须安装它们(或者,对于 MFC 8.0 和 ATL 8.0,可以将它们静态链接到您的程序中)。
分辨率和方向敏感性 Windows Mobile 5.0 设备支持多种屏幕大小和方向(包括纵向、横向和方形)。所有面向 Windows Mobile 5.0 的应用程序都标记为具有屏幕分辨率和方向敏感性;因此,开发人员所面临的一个非常重要的问题是,设计和验证应用程序以便在各种屏幕分辨率和方向下有效地工作。除了验证对不同分辨率和方向的支持以外,开发人员还应该使应用程序做好设备方向在应用程序生存期中的任何时间更改的准备,因为很多 Windows Mobile 5.0 设备支持在纵向和横向之间动态更改。 对于托管开发人员,为处理不同屏幕分辨率和方向而进行准备的最佳方式通常是利用托管控件的 Dock 和 Anchor 属性。托管应用程序自动调整每个应用程序窗体的大小,以匹配当前设备的屏幕布局。当用户在应用程序运行过程中更改设备的屏幕方向时,所有应用程序窗体都将自动重定向,以匹配新的屏幕布局。通过使用 Dock 和 Anchor 属性,在发生任何窗体布局更改时,所有窗体控件都将自动重定位。 对于本机开发人员,Visual Studio2005 在 DeviceResolutionAware.h 中提供了很多 Helper 函数,以简化使应用程序具有分辨率和方向敏感性的过程。通过使用所提供的 Helper 函数,开发人员可以设计应用程序以询问当前方向,缩放图形资源,以及用更加适合当前屏幕布局的资源修改当前对话框布局。表 14 列出其中一些函数。
无论开发人员是使用托管开发工具还是本机开发工具,开发人员都应该使所有面向 Windows Mobile 5.0 的应用程序做好适应所有受支持的屏幕大小和方向的准备。通过使用 Windows Mobile 5.0 SDK 随附的模拟器,开发人员可以轻松地验证应用程序外观和行为,因为所提供的模拟器代表了所有可能的 Windows Mobile 5.0 屏幕布局。 Windows Mobile 5.0 将继续运行现有的可能不具有屏幕敏感性的应用程序。当应用程序面向的分辨率低于设备支持的分辨率时,Windows Mobile 5.0 将自动执行像素加倍处理,缩放应用程序以使其与设备显示匹配。如果设备方向导致应用程序显示的某些部分被切掉,则 Windows Mobile 5.0 会自动添加滚动条,以使用户可以滚动和查看屏幕的其余部分。 Pocket PC 软键 Windows Mobile 5.0 为 Pocket PC 引入了软键。如图 16 所示,软键是应用程序可以修改的键,它们出现在屏幕的底部,并且与屏幕正下方的硬键相联系。软键自 Smartphone 最初发布以来就已经存在了,并且已经成为有价值的用户工作效率工具。在 Pocket PC 上,软键可以避免使用笔针的需要,因为它们使用户能够通过只使用一只手来与应用程序交互。 ![]() 图 16. Windows Mobile 5.0 Pocket PC 软键。 向应用程序中添加智能键就像设计菜单一样简单。在设计应用程序时,请简单地创建一个只带两个选项的菜单。当该应用程序执行时,Windows Mobile 5.0 会将每个菜单选项映射到某个软键。Windows Mobile 5.0 自动为任何包含带有一个或两个选项的菜单的应用程序提供该行为。包含两个以上选项的菜单呈现为传统的菜单。 持久存储区 Windows Mobile 5.0 能够防止所有数据和应用程序遭受与电源有关的损失。因为 Windows Mobile 5.0 将整个文件系统和注册表装入到持久存储区中(而不是使用 RAM),所以,Windows Mobile 5.0 设备就为用户和应用程序都提供了可靠的存储平台 — 即使是在缺少电池电源的情况下。 持久存储区为应用程序开发人员提供了可靠的存储系统,该系统完全是通过标准文件系统和注册表 API 实现的。持久存储区针对大型读写操作进行了优化;因此,大块读写数据的应用程序的性能往往要超过那些读写小块数据的应用程序。 EDB 为了改善应用程序的性能和长期可移植性,CEDB 对象存储区已经被 EDB 所取代。EDB 利用了 SQL Mobile 使用的存储子系统,并且提供了明显优于 CEDB 的性能(尤其是在与持久存储区一起使用时)。将应用程序从 CEDB 移植到 EDB 的影响最小,因为 CEDB 提供了与 CEDB 完全相同的函数集 — 所有函数都具有相同的名称和参数列表。 Pocket PC 应用程序安全 为了帮助用户和企业保护其 Pocket PC 设备的完整性,Windows Mobile 5.0 将 Smartphone 所使用的基于证书的应用程序安全模型引入到 Pocket PC 中。通过该应用程序安全模型,Windows Mobile 5.0 设备依靠数字代码签名来验证用户安装到设备中的任何应用程序确实来自它所声称的来源,并且在用户将其安装到设备中以前,没有人修改过该应用程序。 默认情况下,当在 Windows Mobile 5.0 Pocket PC 上启动新的应用程序安装时,在执行实际安装以前,设备会检查该应用程序是否已经用来自受信源的证书进行了数字签名。如果该设备确定该应用程序来自受信源,则它会安装该应用程序。如果该应用程序未签名或未用来自已知受信源的证书签名,则设备会提示用户确认是否应该继续执行该安装。该模型使用户能够完全控制将哪些应用程序安装到他们的设备上。 对于希望严格控制安装在企业设备中的应用程序的企业,它们可以修改该默认模型。在该方案中,企业可以移除默认的受信源列表,并且可以安装它们自己的列表。此外,企业可以禁用在应用程序未签名或来自未知源时提示用户的选项。在企业禁用该选项以后,用户只能安装由该企业认为是受信源之一签名的应用程序。该模型显著提高了企业设备的稳定性和可靠性,这是因为它消除了由用户安装个人软件引起的相关问题和支持问题。 Pocket PC 和 Smartphone 共享公共 CAB 格式 用于 Pocket PC 和 Smartphone 的 Windows Mobile 5.0 软件共享一种公共的 CAB 格式。共享一种公共的 CAB 文件格式可以显著减少创建 CAB 文件和支持安装过程所需的时间,因为所有设备安装都是通过单个 CAB 处理的。 ActiveSync 任何移动设备应用程序中的关键考虑事项之一是,如何将该设备中的数据与桌面计算机或后端服务器中的数据进行同步。对于许多应用程序而言,答案是 ActiveSync,因为它为 Windows Mobile 设备提供了端对端数据同步解决方案。对于 Windows Mobile 5.0,ActiveSync 合并了很多增强功能,以便提供更高质量的、更可靠的同步体验。 改进的 USB 2.0 支持 尽管 ActiveSync 提供了很多连接选项(包括蓝牙、红外线和串行端口),但开发人员最经常使用的是 USB 2.0。为了在开发人员通过 USB 2.0 连接进行连接时改进 ActiveSync 体验,ActiveSync USB 驱动程序已经完全进行了重构。这些新的驱动程序现在充分利用了 USB 2.0 硬件的功能和性能。此外,这些新的驱动程序现在可以更加有效地与桌面计算机网络服务协作。这些新的驱动程序加之它们与桌面网络服务之间的更好合作,一起显著提高了同步吞吐量。 改进的多重合作关系管理 ActiveSync 除了现有的对与多个桌面计算机保持合作关系的设备的支持以外,还改进了它对合作关系管理的处理。现在,ActiveSync 支持与桌面计算机和服务器同时保持合作关系。ActiveSync 还具有重新构建的用于检测合作关系之间的冲突的逻辑。这一新逻辑在检测冲突方面更为有效,从而显著减少了在合作关系之间出现重复信息的情况。 改进的 Exchange 同步 更新 ActiveSync 的关键焦点之一是,改进用户在将设备与 Exchange 进行同步时的总体体验。这些更新已经导致了多个关键性的变化。最显著的变化之一是在与 Exchange 同步时的连接可靠性方面的改进。这一改进不仅产生了更为成功的初始连接,而且减少了丢弃的或不完整的连接数量。这些更改还改进了在直接与 Exchange 服务器进行同步和通过桌面计算机连接与 Exchange 同步之间的同步连续性。这些同步方式现在提供了完全相同的同步行为和结果。 ActiveSync 现在提供了更为完整的 Exchange 同步体验。ActiveSync 除了长久以来支持约会、联系人和日历的同步以外,它现在还支持同步任务。作为提供更为完整的体验的一部分,ActiveSync 现在还能够同步其他 Outlook 属性。其中最值得注意的是,它现在能够同步作为联系人的一部分而包含的图片。 改进的安全 除了对功能进行增强,ActiveSync 还包含很多安全增强功能。这些增强功能是严格的安全审查的结果,旨在更好地保护您、您的设备、数据和桌面计算机。一项关键性的安全更改是移除远程同步。在以前的版本中,远程同步使设备可以通过使用 WiFi 连接进行同步。在经过审查之后,该功能被认为没有提供足够的安全,并且已经被移除。 RAPI Windows Mobile 远程 API (RAPI) 是一系列用于从桌面计算机中管理和控制所连接的设备以及与其进行交互的函数。除了支持长期存在的 C 样式 RAPI 以外,Windows Mobile 5.0 还提供了新的基于 COM 的实现。新的基于 COM 的 RAPI 提供从现有 C 样式实现进行的关键性体系结构转换。与假设恰好有一个 Windows Mobile 设备连接到桌面计算机的 C 样式 RAPI 不同,基于 COM 的 RAPI 被设计为支持多个同时连接到桌面计算机的设备并且与它们进行交互。 需要说明的是,Windows Mobile 5.0 仍然只支持将单个设备连接到桌面计算机 — 它不支持多个同时连接的设备。但是,将来的 Windows Mobile 实现可能支持将多个 Windows Mobile 设备同时连接到单个桌面计算机这一功能。 尽管编写为使用新的基于 COM 的 RAPI 的应用程序将被限制为与单个已连接的 Windows Mobile 5.0 设备进行交互,但这些应用程序已经做好了在对相应功能的支持添加到将来的 Windows Mobile 设备中以后,与多个已连接的设备进行交互的准备。建议所有刚刚创建的面向 Windows Mobile 5.0 的 RAPI 应用程序都使用基于 COM 的 RAPI。表 15 显示三个主要的 RAPI COM 接口。
Windows Media Player Windows Media Player 为用户提供丰富的多媒体体验,它同时为音频和视频播放提供了高质量的支持。Windows Mobile 5.0 通过将 Windows Media Player 公开为 OCX,向那些希望将多媒体播放功能合并到其应用程序中的应用程序开发人员提供了这些功能。使用 Windows Media OCX,开发人员可以管理播放列表、枚举内容、流式传输内容、控制播放质量,等等。图 17 显示 Windows Media Player Library 和 Music Playback 屏幕。 ![]() 图 17. Windows Media Player 10 Library 和 Music Playback 屏幕。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||