Windows Mobile开发FAQ

Windows Mobile开发FAQ

编译:刘铁锋

    [摘要]本文为Pocket PC以及Smartphone开发者或对此感兴趣者提出的常见问题提供了解答。

常见问题

    问:什么是Windows Mobile?

    答:Window Mobile是微软公司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 Mobiles software版本都是构建在原有的强大的开发平台之上。同时,对于开发者来说,每个新的Windows Mobile software版本都维持了原有核心的一致性以便更好的兼容设备。现在主要有如下三种Windows Mobile software版本:

  • Windows Mobile 2002 software:该软件主要运行在被称为Pocket PC 2002以及Smartphone 2002的设备上。它包括了MAPI以及连接管理(Connection Manager)的新功能。
  • Windows Mobile 2003 software:该软件版本在基于2003的设备中的ROM中附加了.NET CF。该功能可以让开发者为基于Windows Mobile 2003的设备编写托管代码(Managed Code)。它还包括了配置管理(Configuration Manager)、支持蓝牙编程、以及支持SMS侦听的新功能。
  • Windows Mobile 2003第二版:该版本提供了如支持屏幕横向阅览模式(Landscape)、为Pocket PC提供的高分辨率屏幕支持以及Square屏幕支持、为Smartphone提供的QVGA屏幕等革新功能。在该版本中所有开发平台上的所有命名没有做任何改变,所有支持新屏幕方向和分辨率的API都已经成为了该平台的一部分。

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

    答:不管是Pocket PC还是Smartphone在“设置”中都有“关于”面板。在两种设备中都可以通过“开始”菜单来找到“设置”。

    在编程的代码中,您可以使用GetVersionEx方法来获得操作系统的主、次版本号以及软件的具体编译数据。具体如下:

  • Windows Mobile 2002–OS Version : 3.0
  • Windows Mobile 2003–OS Version : 4.20
  • Windows Mobile 2003第二版–OS Version : 4.21

Pocket PC开发

    问:有哪些工具可以支持Pocket PC 2003开发?

    答:如果使用C++为Pocket PC 2003开发程序,您需要使用Microsoft eMbedded Visual C++ 4.0,Microsoft eMbedded Visual C++ 4.0 Service Pack 3,以及Pocket PC 2003 SDK。

    您可以使用Windows Mobile 2003第二版的模拟器工具包来在模拟在第二版的设备上测试您的程序。

    请注意:Pocket PC 2003 SDK中不支持Microsoft eMbedded Visual Basic开发。您将需要使用Visual Studion.NET 2003以及Pocket PC 2003 SDK来编译托管代码(Managed Code)编写的程序。

    问:Pocket PC 2002上的应用程序也适用于Pocket PC 2003吗?

    答:一般来说,使用文档中注明的API开发的能在Pocket PC 2002上正常工作的程序,可以不用重新编译直接在Pocket PC 2003上运行。

    问:为什么Pocket PC 2003不再提供对eVB开发环境的支持?

    答:我们在Pocket PC 2003设备上将一直支持作为在RAM上的安装组件方式来支持eVB运行,因此旧版本的eVB程序也可以在新设备上运行。但是我们不再为Pocket PC 2003设备提供新的eVB开发环境的支持,因为我们提供了更为强大也更为健壮的Visual Basic .NET,Visual C# .NET以及Microsoft.NET Compact Framework。

    根据用户的反馈,Pocket PC 2003设备中将在ROM中包括.NET CF。.NET CF是.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(Just-In-Time)在执行前先编译为本地代码。
  • 更好的错误处理机制:eVB仅仅支持“ON Error”;Visual Basic .NET支持结构化的错误处理。
  • 提供对结构(structures)支持:eVB没有结构的概念;Visual Basic .NET中支持命名空间(namespaces),类(classes),以及结构(structures)。
  • 对面向对象的支持:eVB是基于过程的;Visual Basic .NET完全支持OOP(Object-Orientated Programming)
  • 更好的特性:eVB仅仅支持MFC;Visual Basic .NET是纯.NET
  • 与生俱来的XML支持:eVB不支持XML;Visual Basic.NET支持XML以及XML Web Services。
  • 更好的数据模型:作为我们最好的数据模型,ADO.NET远远超过了ADOCE。
  • 更加安全、可靠的执行:eVB是脚本语言;Visual Basic .NET是托管代码(Managed Code)。

    同样,从范例到技术文章,我们有各种丰富的资源协助开发者完成这个转变。

    问:如果需要为Pocket PC开发基于.NET CF的程序,可以采用何种开发工具?

    答:Microsoft Visual Studio .NET 2003可以让Visual Basic .NET或C#开发者为Pocket PC 2000,Pocket PC 2002,Pocket PC 2003等相关设备编写托管代码(Managed Code,也就是所这些程序将在.NET CLR下运行)。毫无疑问,您可以使用Visual Studio .NET 2003为Pocket PC 2000以及Pocket PC 2002的相关设备开发托管代码程序。Visual Studio .NET 2003可以自动在开发中在这些设备的RAM上安装.NET CF。在Pocket PC 2003的ROM中已经存在了.NET CF,同时也通过Pocket PC 2003 SDK被Visual Studio .NET 2003支持。

    问:有哪些相关资源是关于Windows Mobile 2003第二版开发的?

    答:下载新的Windows Mobile 2003 Second Edtion Developer Resources Kit,里面包括了最新以及更新的代码例子以及白皮书。并且这个版本不需要新的SDK。您可以通过使用新的模拟器工具包来测试您的程序。eMbedded Visual C++ 4.0开发者应该先下载eMbedded Visual C++ 4.0 Service Pack 3

Smartphone开发

    问:有哪些工具可以支持Smartphone 2002开发?

    答:您可以使用eMbedded Visual C++ 3.0以及Smartphone 2002 SDK来为Microsoft Smartphone 2002开发程序。这些软件都可以从MSDN网站上获得。

    问:什么时候会有支持Smartphone 2002开发的.NET CF?

    答:第一个版本的.NET Compact Framework主要是为了更好的支持比较成功的Pocket PC相关的智能设备上程序开发。我们将在Smartphone的Smartphone 2003的版本中增加.NET CF。我们暂时没有计划发布支持Smartphone 2002的.NET CF。

    问:是否有支持Smartphone 2002开发的MFC或ATL?

    答:没有,MFC或者ATL都不支持Smartphone 2002。

    问:可以使用eMbedded Visual Basic 3.0为Smartphone 2002开发程序吗?

    答:不行。没有针对于Smartphone 2002的eVB开发环境。

    问:有哪些工具可以支持Microsoft的Smartphone 2003编程?

    答:随着Smartphone 2003的发布,您将有两项开发工具可供选择:使用带有Server Pack 3的eMbedded Visual C++ 4.0(采用本地代码)或者使用Visual Studio .NET 2003(使用托管代码)。不管怎样,您都必须下载Smartphone 2003 SDK。同时,使用Windows Mobile 2003第二版的模拟器可以让你模拟在第二版的设备上测试程序。

    这些软件都可以从MSDN网站上获得。

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

    答: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第二版的ROM中存在。

    问:Smartphone 2002上的应用程序也适用于Smartphone 2003的相关设备吗?

    答:一般来说,使用文档中注明的API开发的能在Smartphone 2002上正常工作的程序,可以不用重新编译直接在Smartphone 2003上运行。

    问:有哪些典型的基于Smartphone 2002以及Smartphone 2003的设备?

    答:最初的Orange SPV以及Orange SPV e100都是运行在Windows Mobile 2002之上。MPX200同样基于Orange,AT&T也构建在基于Windows Mobile 2002的Smpartphone上。Orange SPV e200运行在Windows Mobile 2003之上。

    问:是否有支持Smartphone 2003开发的MFC或ATL?

    答:MFC不支持Smartphone 2003。您可以使用ATL 4.0来为Smartphone 2003做开发。请查看SDK文档来获得更多关于ATL 4.0的信息。

    问:哪里可以获得关于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的eVB开发环境。如果您希望使用您的Visual Basic的开发技巧,您可以考虑采用Visual Basic .NET以及.NET CF。

    问:有哪些相关资源是关于Windows Mobile 2003第二版开发的?

    答:下载新的Windows Mobile 2003 Second Edtion Developer Resources Kit,里面包括了最新以及更新的代码例子以及白皮书。并且这个版本不需要新的SDK。您可以通过使用新的模拟器工具包来测试您的程序。eMbedded Visual C++ 4.0开发者应该先下载eMbedded Visual C++ 4.0 Service Pack 3。

Mobile开发工具

    问:什么是Microsoft eMbedded Visual Tools 3.0?

    答:eMbedded Visual Tools 3.0是一个集成化开发工具。该开发工具主要针对基于使用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以及SDK主要支持Pocket PC 2000、Pocket PC 2002、Smartphone 2002以及其他基于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是一个强大的开发工具。它为使用本地代码(Native Code)开发下一代的基于Windows CE设备,包括Pocket PC 2003以及Smartphone 2003的程序提供了最大的便利。这个独立的集成化开发工具为Windows CE程序开发带来了更高水平的生产力,同时在开发的灵活性、性能以及控制上却没有任何损失。如果使用eMbedded Visual C++工具为Pocket PC 2003或Smartphone 2003开发,您同样需要下载eMbedded Visual C++ 4.0。Service Pack 3、Pocket PC 2003 SDK以及Smartphone 2003 SDK。

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

    答:您可以使用eMbedded Visual C++ 4.0加上Service Pack 2来为Pocket PC 2003以及包括了Windows Mobile 2003第二版的Smartphone 2003开发应用程序。但它不能用于Pocket PC 2002以及Smartphone 2002的开发。

    问:可以使用Windows CE标准SDK为Pocket PC或Smartphone开发程序吗?

    答:Windows CE SDK提供了一组特性的公共子集。这些子集可以允许遵照标准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工具加上合适了平台SDK来构建强大的本地代码(Native Code)客户端程序。使用Visual Studio .NET 2003可以构建基于.NET Compact Framework的Pocket PC智能客户端程序。同样使用Visual Studio .NET以及ASP.NET移动开发控件可以开发基于浏览器的程序,这种程序可以支持更多的设备,其中包括向Pocket PC以及Smartphone这样的设备。

    问:为什么Visual Studion.NET中没有整合eMbedded Visual C++4.0?

    答:根据用户反馈,我们最初的努力都集中在如何让Visual Basic .NET开发者能够更加便利的开发程序。然而,我们将在下一个版本的Visual Studio中集成使用本地代码(C++)开发移动设备程序的能力。

    问:什么是.NET Compact Framework(简称.NET CF)?

    答:.NET Compact Framework是.NET Framework的一个子集。它的主要目标针对于资源有限设备而设计,提供对托管代码(Managed Code)以及XML Web Services的支持。.NET Compact Framework大大的介绍了开发者在开发运行在类似Pocket PC这样的设备的程序的代码量。因为.NET Compact Framework是.NET Framework的一个子集,因此如果开发者有开发桌面或服务器应用程序的经验,他们同样也可以应用相应的技巧来为Pocket PC以及Smartphone 2003相关设备开发程序。

    问:使用.NET CF的最大优点何在?

    答:为不同设备开发程序最大的障碍在于,大多数设备都需要开发者学习比开发桌面程序更多的API以及编程工具。因为.NET CF采用与.NET Framework同样的编程模型以及采用与开发桌面程序或服务器程序相同的开发工具,因此,它大大的提高的开发者的生产力。反过来,同样为会促进公司使用智能设备开辟新的途径提高业务量。同样,.NET CF也是唯一的为本地代码提供XML Web Services支持的移动开发平台。

    问:.NET CF可以在哪些设备上运行?

    答:.NET Compact Framework可以安装在Pocket PC 2000或者Pocket PC 2002相关设备(包括智能手机版本)的RAM中。同时在Pocket PC 2003相关设备的ROM中以及包括了.NET CF。Smartphone 2003设备中以及包括了.NET CF 1.0以及Server pack 1。所有的Windows Mobile 2003第二版的设备中都包括了.NET CF 1.0 Server Pack 2。

    问:.NET CF将在什么时候可以使用?

    答:.NET CF 1.0的版本已经作为了Visual Studio .NET 2003的一部分。

    问:.NET CF上可以支持所有的.NET语言吗?

    答:最初的.NET CF可以支持Visual C#以及Visual Basic。只要采用了遵照.NET CF支持的CLR语言,其他语言一样也可以运行。

    问:.NET CF将会和eMbedded Visual C++一样出色吗?

    答:在大部分情况下,使用eMbedded Visual C++开发的程序将比使用Visual Basic .NET或者Visual C# .NET开发的程序运行速度要快。但是,在程序中的某些地方进行详细的比较,会发现使用Visual Basic .NET的应用程序将比eMbedded Visual Basic相同的应用程序的性能有实质上的提升。

    问:.NET CF和ASP.NET Mobile Controls的区别何在?

    答:有两种不同的方案为移动设备开发程序。一种是直接让程序在智能设备上运行;另外一种是让程序在服务器端运行,而通过浏览器在客户端显示。.NET CF支持前者,而ASP.NET Mobile Controls(即Microsoft Mobile Internet toolkit)支持后者。

    如果开发的程序需要在没有网络连接的情况下运行或者要求有更强大的用户界面支持或者需要与操作系统紧密相关,比如多媒体或者其他设备,那么使用.NET CF将为开发这类智能设备程序提供最大的便利。

    当然,开发在服务器段运行的程序也有相应的好处。这种结构尤其对需要有大范围的需要通过网络访问的程序最有价值。因为服务器端采用与台式机相同的设备,因此这些程序不会受到资源的限制。我们一般利用Visual Studio .NET中的ASP.NET Mobile Controls来开发相关程序。

posted on 2005年01月04日 5:09 PM

你可能感兴趣的:(C++,.net,windows,Microsoft,basic,mobile)