开发 Windows Mobile 应用程序: FAQ

常见问题

问:什么是 Windows Mobile

答:Windows Mobile 是 Microsoft 用于 Pocket PC 和 Smartphone 的软件平台。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中。

问: Pocket PC Smartphone 之间有什么不同?

答:考虑 Pocket PC 和 Smartphone 的主要使用特性方面。Smartphone 主要是在格式因素和使用两方面作为一种电话设备而设计的。它经过良好的微调,可以用于发出和接收呼叫,并且还可以作为消息处理设备。Pocket PC 主要是作为一种小型个人计算机而设计的,对于查看和管理数据与增强消息处理而言很不错。某些 Pocket PC 设备也具有电话功能。您应当尽量根据目标 Windows Mobile 设备的使用特性来调整您的应用程序。

问: Pocket PC Smartphone 有哪些不同的版本(例如 2002 2003 )?

答:Windows Mobile 软件的每个新版本都是在可供开发人员使用的丰富的现有开发平台上构建的,而同时保持了一致的核心,这样应用程序就可以面向各种设备了。目前有三种通用的 Windows Mobile 软件版本:

  • Windows Mobile 2002 软件:运行设备的软件有时称为 Pocket PC 2002 和 Smartphone 2002。新的开发人员功能包括 MAPI 和连接管理器。

  • Windows Mobile 2003 软件:2003 软件版本将 .NET Compact Framework 添加到基于 2003 的设备 ROM。这使得开发人员能够为基于 Windows Mobile 2003 的设备编写托管代码应用程序。其他的新功能包括配置管理器、蓝牙可编程性和 SMS 截获支持。

  • Windows Mobile 2003 Second Edition:Second Edition 版本使得设备制造商能够通过该版本的主要功能(例如,对 Pocket PC 的横向、方形和高分辨率屏幕以及 Smartphone 的 QVGA 屏幕的支持)进行创新。其命名反映了开发平台的一致性,这对于此版本也没有改变,所有支持新屏幕方向和分辨率的 API 始终是平台的一部分。

问:我如何识别不同的软件版本?

答:Pocket PC 和 Smartphone 在 Settings 中都有一个 About 面板。Settings 可以从两种设备的 Start 菜单找到。

根据代码,您可以使用 GetVersionEx 函数查询最高和最低的 OS 版本以及软件的确切内部版本号。

  • Windows Mobile 2002– OS Version : 3.0

  • Windows Mobile 2003– OS Version : 4.20

  • Windows Mobile 2003 Second Edition– OS Version : 4.21

问:为了支持 Windows Mobile 2003 Second Edition 的增强功能(例如高分辨率或横向屏幕),我应该在我的应用程序中做些什么?

答:Windows Mobile 2003 Second Edition 提供了全新的屏幕方向和分辨率,包括针对 Pocket PC 的横向、方形和 VGA 支持以及针对 Smartphone 的 QVGA 支持。这种版本不需要新的 SDK。

  1. 阅读 Windows Mobile 2003 Second Edition Developer Resources 软件包中白皮书上的最佳做法。

  2. 测试您的应用程序,使用 Pocket PCSmartphone 的 Windows Mobile 2003 Second Edition 模拟器。

  3. 使应用程序屏幕方向和分辨率保持独立,这样您就可以使用一个代码基以 Windows Mobile 平台上的全部硬件创新为目标了。

下载新的 Windows Mobile Developer 资源包 ,其中包括新的和更新的代码示例及白皮书。

Pocket PC 开发

问:什么工具可用于 Pocket PC 2003 开发?

答:要构建 Pocket PC 2003 本机 C++ 应用程序,您需要 Microsoft® eMbedded Visual C++® 4.0、Microsoft® eMbedded Visual C++® 4.0 Service Pack 3,以及 Pocket PC 2003 软件开发工具包。您可以下载 eMbedded Visual C++ 工具Pocket PC 2003 SDK。Windows Mobile 2003 Second Edition 模拟器包使您可以在 Second Edition 设备上测试您的应用程序。注意,Pocket PC 2003 SDK 不支持 Microsoft® eMbedded Visual Basic® 开发。要构建 Pocket PC 2003 托管代码应用程序,您需要 Visual Studio .NET 2003Pocket PC 2003 SDK

要构建 Pocket PC 移动 Web 应用程序,可以使用 Visual Studio .NET 2003 中的 ASP.NET 移动控件

问: Pocket PC 2002 应用程序可以在 Pocket PC 2003 设备上工作吗?

答:使用文档化 API 且功能良好的 Pocket PC 2002 应用程序无需重新编译即可在 Pocket PC 2003 设备上运行。

问:为什么 Pocket PC 2003 不再支持 eVB 开发?

答:在 Pocket PC 2003 设备中我们将继续支持 eVB 运行时作为一个可安装的 RAM 组件,这样旧的 eVB 应用程序就能够在新的设备上运行,但是离开 Visual Basic® .NET、Visual C#® .NET 和 Microsoft® .NET Compact Framework 更强大健壮的开发体验,Pocket PC 2003 设备的新 eVB 开发将不受支持。

根据客户的反馈,Pocket PC 2003 设备将在 ROM 中包含 .NET Compact Framework。.NET Compact Framework 是完整的 .NET Framework 的一个子集,是专门为智能设备设计的。它是一种比 Pocket PC 2000 和 Pocket PC 2002 设备中提供的特定于 eVB 运行时的更加全面且与语言无关的应用程序引擎。

问:如何从 eVB 迁移到 Visual Basic .NET

答:从 eVB 迁移到 Visual Basic .NET 并不容易,但迁移的好处远远超过了成本:

  • 数据类型更丰富:eVB 只有 16 字节的 VARIANT;Visual Basic .NET 使用 .NET Framework 通用类型系统。

  • 执行更快:eVB 需要解释;Visual Basic .NET 在执行前 JIT(实时)编译为本机代码

  • 错误处理更完善:eVB 仅支持“On Error”;Visual Basic .NET 支持结构化异常处理

  • 支持结构:eVB 不支持;Visual Basic .NET 支持命名空间、类和结构

  • 面向对象:eVB 是过程性的;Visual Basic .NET 支持完全的 OOP(面向对象编程)

  • 一流公民:eVB 总是想迎头赶上 MFC;Visual Basic .NET 是核心 .NET

  • 本机 XML 支持:eVB 不支持;Visual Basic .NET 支持本机 XML 和 XML Web 服务

  • 数据模型更完善:ADO.NET 远远超过了 ADOCE;它仍是最好的数据模型

  • 执行更安全、更可靠:eVB 是一种脚本语言;Visual Basic .NET 为托管代码

  • 还有许许多多!

同时,还有各种各样的资源(从移植实验到技术文章)可以帮助开发人员进行这种过渡。一个例子就是一篇概述如何从 eVB 迁移到 Visual Basic .NET 及其优点的技术文章: Moving from eMbedded Visual Basic to Visual Basic .NET

问:我使用什么开发工具来编写基于 .NET Compact Framework Pocket PC 应用程序?

答:Microsoft® Visual Studio® .NET 2003 允许 Visual Basic .NET 或 C# 编程人员创建 Pocket PC 2000、Pocket PC 2002 和 Pocket PC 2003 设备的托管代码应用程序(即那些以 .NET 公共语言运行库为目标的应用程序)。要开发 Pocket PC 2000 和 Pocket PC 2002 设备的托管代码应用程序,您可以使用即装即用的 Visual Studio .NET 2003。在开发过程中,Visual Studio .NET 2003 将会自动地将 .NET Compact Framework 安装到这些设备的 RAM 中。.NET Compact Framework 已经在所有 Pocket PC 2003 设备的 ROM 中,而且 Visual Studio .NET 2003 通过 Pocket PC 2003 SDK 支持它。

问:有什么资源可以用于进行 Windows Mobile 2003 Second Edition 开发?

下载新的 Windows Mobile Developer 资源包 ,其中包括白皮书以及新的和更新的代码示例。该版本不需要全新的 SDK。

可以用新的模拟器软件包测试您的应用程序。

eMbedded Visual C++ 4.0 开发人员应当下载 eMbedded Visual C++ 4.0 Service Pack 3。

Smartphone 开发

问:什么工具可用于 Smartphone 2002 开发?

答:要开始开发 Microsoft Smartphone 2002 应用程序,您需要 eMbedded Visual C++ 3.0 和 Smartphone 2002 SDK。两者都可以在 Windows Mobile Developer 获得。

问:何时可以将 .NET Compact Framework 用于 Smartphone 2002

答:.NET Compact Framework 的第一个版本重点为成功的 Pocket PC 类别设备提供智能设备编程支持。将 .NET Compact Framework 添加到 Smartphone 的 Smartphone 2003 版本中。没有发布用于 Smartphone 2002 的 .NET Compact Framework 版本的计划。

问: MFC ATL 可用于 Smartphone 2002 开发吗?

答:不可以,Smartphone 2002 不支持 MFC 与 ATL 开发。

问:可以使用 eMbedded Visual Basic 3.0 来构建 Smartphone 2002 应用程序吗?

答:不可以,不支持以 Smartphone 2002 为目标的 eVB 开发。

问:什么工具可用于进行 Microsoft Smartphone 2003 编程?

答:对于 Smartphone 2003 版本,有两种开发选择,或者通过带有 Service Pack 3 的 eMbedded Visual C++ 4.0 开发本机代码,或者通过 Visual Studio .NET 2003 开发托管代码。两种情况都需要下载 Smartphone 2003 SDK。Windows Mobile 2003 Second Edition 模拟器软件包使您可以在 Second Edition 设备上测试应用程序。

eMbedded Visual C++ 4.0 和 Smartphone 2003 SDK 都可以在 Windows Mobile Developer 获得。

问:在 Smartphone 2003 上可以使用 .NET Compact Framework 的哪一个版本?

答:Smartphone 2003 允许开发人员使用 .NET Compact Framework 1.0 Service Pack 1 进行编码。.NET Compact Framework 可以放在 Smartphone 2003 的 ROM 中。.NET Compact Framework 1.0 Service Pack 2 放在 Smartphone 2003 Second Edition 的 ROM 中。

问: Smartphone 2002 应用程序可 以在 Smartphone 2003 设备上工作吗?

答:使用文档化 API 且功能良好的 Smartphone 2002 应用程序无需重新编译即可在 Smartphone 2003 设备上运行。

问:什么是示例 Smartphone 2002 设备和 Smartphone 2003 设备?

答:原始的 Orange SPV 与 Orange SPV e100 运行 Windows Mobile 2002。Orange 和 AT&T 上的 MPX200 都是基于 Windows Mobile 2002 的 Smartphone。Orange SPV e200 运行 Windows Mobile 2003。

问: MFC ATL 可用于 Smartphone 2003 开发吗?

答:MFC 不可用于 Smartphone 2003。可以使用 ATL 4.0 进行 Smartphone 2003 开发。有关 ATL 4.0 的更多信息,请参阅 SDK 文档。

问:在何处我可以找到更多有关 Smartphone 应用程序安全模型的信息?

答:为了帮助开发人员了解基于 Windows Mobile 的 Smartphone 应用程序安全模型,我们创作了一本白皮书。请参见 http://msdn.microsoft.com/library/en-us/dnsmtphn2k3/html/smartphone_security.asp

问:什么是提示模式?

答:OEM 或运营商可以将提示模式包含在他们的 Smartphone 应用程序安全策略中,从而允许用户来决定在安装或运行时是否安装或运行一个应用程序。

问:可以使用 eMbedded Visual Basic 3.0 来构 Smartphone 2003 应用程序吗?

答:不可以,不支持以 Smartphone 2003 为目标的 eVB 开发。如果您希望利用 Visual Basic 的开发技巧,可以考虑使用 Visual Basic .NET 并以 .NET Compact Framework 为目标。

问:有什么资源可以用于进行 Windows Mobile 2003 Second Edition 开发?

下载新的 Windows Mobile Developer 资源包 ,其中包括白皮书以及新的和更新的代码示例。

可以使用新的模拟器软件包来测试您的应用程序。

eMbedded Visual C++ 4.0 开发人员应当下载用于 eMbedded Visual C++ 4.0 的 Service Pack 3

移动开发工具

问:什么是 Microsoft eMbedded Visual Tools 3.0

答:eMbedded Visual Tools 3.0 是一种集成开发环境 (IDE),移动开发人员用来为基于 Microsoft Windows CE 操作系统的 32 位设备编写软件应用程序。包括完整版的 Microsoft eMbedded Visual C++ 3.0 语言、Microsoft eMbedded Visual Basic 3.0 语言、特定于平台的 SDK、远程工具和文档。

问: eMbedded Visual Tools 3.0 支持什么设备平台?

答:eMbedded Visual Tools 3.0 - 2002 Edition 附带于 Pocket PC 2000、Pocket PC 2002 和 Smartphone 2002 的 SDK,并支持开发自定义的 Windows CE 3.0 设备。
注:Pocket PC 2002 SDK 可以与 eMbedded Visual Basic 3.0 和 eMbedded Visual C++ 3.0 一起使用,但是 Smartphone 2002 SDK 却只受 eMbedded Visual C++ 3.0 支持。

问:什么是 eMbedded Visual C++ 4.0

答:eMbedded Visual C++ 4.0 是一种强大的开发工具,在为下一代基于 Windows CE 的设备(包括 Pocket PC 2003 和 Smartphone 2003)构建本机代码应用程序时可以为企业提供相当大的好处。这种独立的集成开发环境 (IDE) 带来了新水平的 Windows CE 开发效率,但却没有牺牲灵活性、性能或控制。要使用 eMbedded Visual C++ 工具构建 Pocket PC 2003 与 Smartphone 2003 应用程序,您还需要 eMbedded Visual C++ 4.0 Service Pack 3 和 Pocket PC 2003 以及 Smartphone 2003 SDK。下载 eMbedded Visual C++ 4.0 工具。

问:我可以使用 eMbedded Visual C++ 4.0 开发 Pocket PC Smartphone 应用程序吗?

答:可以使用带有 Service Pack 2 的 eMbedded Visual C++ 4.0 来开发包括 Windows Mobile 2003 Second Edition 在内的 Pocket PC 2003 与 Smartphone 2003 应用程序。也可以用它来开发 Pocket PC 2002 或 Smartphone 2002 应用程序。

问:我可以使用 Windows CE Standard SDK 开发 Pocket PC Smartphone 应用程序吗?

答:Windows CE SDK 提供了一个通用的功能子集,使得编写的应用程序能够符合 Standard SDK,以便运行在基于自定义显示的 Windows CE .NET 平台上。为了构建 Pocket PC 和 Smartphone 智能设备应用程序来利用这些平台提供的丰富的设备功能集,需要使用特定于设备的 SDK。

问: eMbedded Visual Tools 3.0 Visual Studio .NET 之间有什么不同?

答:eMbedded Visual Tools 3.0 是一种专门针对移动与嵌入式技术开发人员的独立开发环境。对于 Pocket PC 和 Smartphone,可以利用 eMbedded Visual Tools 和适当的平台 SDK 来构建丰富的“本机代码”客户端应用程序。Visual Studio .NET 是 Microsoft 的最流行桌面开发工具的最新版本。可以使用 Visual Studio .NET 2003 来构建基于 .NET Compact Framework 的 Pocket PC 智能客户端应用程序。同时,还可以使用 Visual Studio .NET 和 ASP.NET 移动控件构建以各种设备(包括 Pocket PC 和 Smartphone 类别的设备)为目标的基于浏览器的应用程序。

问:为什么没有将 eMbedded Visual C++ 集成到 Visual Studio .NET 中?

答:根据客户的反馈,我们最初的工作主要集中于使 Visual Basic .NET 开发人员能够更轻松地对设备进行编程。但是,利用本机代码 (C++) 创建设备应用程序的功能将会集成到 Visual Studio 的下一个版本中。

问:什么是 .NET Compact Framework

答:.NET Compact Framework 是 .NET Framework 的子集,设计为能运行在资源受限的设备上,以便为托管代码和 XML Web 服务提供支持。.NET Compact Framework 大大降低了编写运行在诸如 Pocket PC 设备上的应用程序和服务的开发成本。由于 .NET Compact Framework 是开发人员用来编写桌面和服务器应用程序的 .NET Framework 的一个子集,所以他们已经具备了编写 Pocket PC 和 Smartphone 2003 设备应用程序所必需的全部技巧。

问:使用 .NET Compact Framework 的主要好处是什么?

答:目前编写设备应用程序的一个最大障碍在于,大多数设备都要求开发人员了解不同的 API 和使用不同的编程工具(与用于桌面应用程序相比)。由于 .NET Compact Framework 使用的 .NET Framework 编程模型和 Visual Studio .NET 开发工具与开发人员已经在桌面和服务器上使用的相同,所以它可以大大降低开发设备应用程序的成本,并提高开发人员的工作效率。而这些好处又能够使企业以新的方式使用智能设备,从而改进他们的业务。.NET Compact Framework 也是唯一带有 XML Web 服务本机支持的移动开发平台。

问:什么设备可以运行 .NET Compact Framework

答:.NET Compact Framework 1.0 可以用作 Pocket PC 2000 和 Pocket PC 2002 设备(包括 Phone Edition)的 RAM 安装,并且可以放在 Pocket PC 2003 的 ROM 中。Smartphone 2003 设备包含 .NET Compact Framework 1.0 Service Pack 1。所有的 Windows Mobile 2003 Second Edition 设备均包含 .NET Compact Framework 1.0 Service Pack 2。

问:何时可以使用 .NET Compact Framework

答:.NET Compact Framework 的 1.0 版可以作为 Visual Studio .NET 2003 版本的一部分使用。有关更多信息,请参阅 Device Development

问: .NET Compact Framework 可以运行所有的 .NET 语言吗?

答:最初,.NET Compact Framework 可以运行 Visual C# 和 Visual Basic。只要其他 .NET 语言符合 .NET Compact Framework 支持的公共语言运行库子集,它们就可以运行。

问: .NET Compact Framework 应用程序和 eMbedded Visual C++ 应用程序的执行情况一样吗?

答:在大多数情况下,用 eMbedded Visual C++ 编写的应用程序的运行速度比用 Visual Basic .NET 或 Visual C# .NET 编写的应用程序快。但是,对于应用程序计算密集的部分,开发人员将会看到他们的 Visual Basic .NET 应用程序比他们的 eMbedded Visual Basic 应用程序有实质性的改善。

问: .NET Compact Framework ASP.NET 移动控件之间有什么不同?

答:对设备进行编程有两种不同的方法。一种方法是将应用程序放置在智能设备上。另一种方法是将代码放置在服务器上,并通过浏览器呈现用户界面。.NET Compact Framework 支持前者,而 ASP.NET 移动控件(以前称为 Microsoft Mobile Internet 工具包)则支持后者。

使用设备上的代码构建移动应用程序使应用程序在没有 Internet 连接的情况下可以继续工作。直接在设备上运行的应用程序还支持更丰富的用户界面,以及与操作系统上的可用资产(例如多媒体和其他的应用程序)进行集成的可能性。可以使用 .NET Compact Framework 将高效模型用于构建智能设备应用程序。

构建代码位于服务器的移动应用程序也有其优点。在必须使用 Internet 支持的各种移动设备时,这种体系结构非常有用。这些应用程序也不受资源的限制,因为它们作为桌面 Web 应用程序运行在相同的服务器上。在 Visual Studio .NET 中使用 ASP.NET 移动控件可以完成这些应用程序的编写。

技术与市场支持

问:我如何获得技术支持?

答:技术支持有许多选择,从免费的新闻组到付费的专门支持。有关这些选择的详细信息,请参阅 Windows Mobile Support

问:什么是 Mobile2Market 程序?

答: Microsoft Mobile2Market 是一个综合程序,设计为能使开发人员和独立软件供应商通过移动运营商关系增加收入,同时扩展客户范围并减少进入市场的时间。Mobile2Market 过程由包括应用程序徽标认证的各个步骤组成,并且包括在 Microsoft 应用程序目录中。访问 www.microsoft.com/windowsmobile/mobile2market 以获得更多信息。

问:应用程序徽标认证和应用程序签名之间有什么不同?

答:应用程序徽标认证是设计和构建应用程序以便遵守一组最佳做法设计指导原则的过程。通过让独立软件供应商 (ISV) 的应用程序获得徽标认证,他们可以使其应用程序在市场上显得与众不同,从而大大受益,并确保最终用户的满意度。要查看 Pocket PC 2002 和 Smartphone 2002 的具体徽标认证指导原则,请参阅 Windows Mobile Participate Now。

应用程序签名适用于 Smartphone 2002,而且指的是一种设备安全概念。具体地说,应用程序签名指的是对应用程序进行数字签名(即验证和身份验证)的过程,这样就可以将其部署到实际的 Smartphone 2002 设备上并加以运行。进行应用程序签名的要求是由移动运营商及其提供的具体 Smartphone 设备设置的。

Microsoft Mobile2Market 程序提供了一种框架,可帮助开发人员以一种有效的方式将他们的应用程序推向市场,并描述了应用程序签名、徽标认证和销售的过程。有关详细信息,请参阅 Windows Mobile Participate Now

问:所有的 Smartphone 应用程序在实际部署到设备之前都需要经过徽标认证吗?

答:不是,应用程序徽标认证对于开发 Pocket PC 或者 Smartphone 上的应用程序而言不是必需的,然而,独立软件供应商 (ISV) 可以通过这个过程使其应用程序在市场上显得与众不同,从而大大受益,并确保最终用户的满意度。获得徽标认证的另一个好处是可以包含在 Microsoft 应用程序目录中,它使得 ISV 可以获得广泛的客户。要查看 Pocket PC 2002 与 Smartphone 2002 的具体徽标认证指导员则,请参阅 Windows Mobile Participate Now

问:所有的 Smartphone 应用程序在可以实际部署到设备之前都需要进行数字签名吗?

答:不必。应用程序签名的要求是由移动运营商及其提供的具体 Smartphone 设备设置的。Microsoft Mobile2Market 程序提供了一种框架来帮助开发人员以一种有效的方式将他们的应用程序推向市场,并描述了应用程序签名、徽标认证和销售的过程。有关详细信息,请参阅 Windows Mobile Participate Now。

你可能感兴趣的:(其他系统平台)