John Kennedy
 Microsoft Corporation
摘要:John Kennedy 概述了 Pocket PC 和 Microsoft Windows CE .NET 的最新更新,并提供了简短的 FAQ,以便指出哪些是新内容、哪些是更改的内容,以及为什么您应当进行升级。
大家好,非常抱歉,本专栏这次更新得有些晚了。就在我结束我们的 C# 开发项目的最后一期连载之前,Microsoft 发布了对 Pocket PC 平台进行的重要更新。结果,我勉强凑齐了可以找到的所有信息,至于试图获得免费的 Pocket PC,唔,我想 Barrymore 女士准备让她的私人飞机带我遨游一番的几率会更大些。
但是,这个消息的确是真实的。Microsoft 更新了 Pocket PC,而且新设备已经通过零售或邮购方式开始销售。作为一名开发人员,有一些重要问题需要回答,我已经设法为您找了尽可能多的问题。
*
新增了哪些内容?
正如之前所述,Microsoft 的 Pocket PC 2003 版(毫无疑问,现在称为 Windows Mobile™ 2003)在最新的一批 Pocket PC 硬件上开始提供。新的设备范围较之以往并没有多大变化。我们还是来看一下顶级设备中的 400 MHz XScale CPU,以及较便宜设备中的处理速度稍慢一些的 XScale CPU。看看这些发布的设备,您就会感到,蓝牙无线网络开始变得如同内置功能一般日趋普及,而这是我们在未来无疑应当看好的事物。
当您开启新的 Pocket PC 时,第一眼(或许是第二眼)看去,您会觉得所有的东西都分外眼熟,即具有相同的 Today 屏幕和相同的内置应用程序。可是这里有一些重要改进。连接管理器经过了重新设计,现在,它在更大程度上变成了一个向导。对 Wi-Fi (802.11b) 卡的支持得到了增强,随着热点的增长,透明地联网的应用程序肯定会成为“明日之星”。
从内置应用程序的角度来看,该版本更像是一次升级,因为它只是在旧版本中添加了少许改进。例如,对 Windows_ Media Player 进行了增强,以便播放 9 系列文件。您可能没有注意到,该版本甚至利用了一些细微修饰对用户界面进行了美化。
但是,其中所包含的内容却大不相同了。从最低级别来看,核心操作系统完全进行了更改。现在,Pocket PC 运行在 Windows CE .NET 44.2 之上,这是一个全新的 Windows CE 操作系统版本。Compact Frameworks 运行时文件现在包括在 ROM 中,这对于托管代码开发人员而言是个极好的消息。
我能够获取更新吗?
如果您具有 Pocket PC 2002 设备,您可能会想哪些内容与更新有关。好的,从理论上讲,所有的 Pocket PC 2002 设备都具有闪存 ROM,这意味着可将新软件载入其中。实践中,这要取决于原始制造商从 Microsoft 获取的字节以及按照其硬件上需要的形式将它们制成消息。某些制造商在这一处理过程中要优于其他制造商。如果您要选购新的 Pocket PC,值得去货比三家,以免在将来又得进行另一轮更新。
开发内容
作为 Pocket PC 开发人员,您或许会对更新感觉非常混乱。获取新功能始终是件好事,但是这会如何影响旧有的软件呢?又会如何影响到工具呢?所有这些成本是多少?我知道我的确对自己的 Pocket PC 2002 软件感到惊慌失措,并对它是否仍然可以在新平台上继续工作感到疑惑不定。
好消息是,所有的 Pocket PC 2002 软件似乎都可以在 Pocket PC 2003 硬件上正常运行,甚至无需过多的重新编译。它将正常运行。除非您的软件要利用操作系统执行极为个人的操作,否则不应当出现任何问题。
那就是说,适用于作业的最佳工具已经明确进行了更改。尽管新的 Pocket PC 可以运行使用 eMbedded Visual C++® 2002 编译的软件,但是,为了将新的 Pocket PC 用作本机开发工具,即挂钩到 PC 以接收、执行以及调试代码,您将需要使用 eMbedded Visual C++ 4.0 和 Service Pack 2。可从 Microsoft 免费下载新版本的 eMbedded Visual C++,该版本与版本 3.0 看起来几乎完全相同。
如果您没有 Pocket PC 2003 设备,那么当然可以使用模拟器。新的 Windows Mobile™ 2003 模拟器经过了彻底检查,因此现在它相当有用。例如,您可以指定硬盘的共享文件夹作为存储卡,从而极大地简化使数据进入模拟器文件系统的操作。该模拟器还支持 GAPI,这对于全屏幕应用程序(例如,Kiosk 软件和游戏)非常有用。
对于托管代码,您将需要使用 Visual Studio® .NET 2003。对于为运行 Windows Mobile 2003 的 Pocket PC 2002 和 Pocket PC 使用 Compact Framework 编写和部署应用程序来说,其间所需的所有内容都包括在其中。
对于 SmartPhone 来说,情况相似,我已经收集了可以找到的所有开发信息,并将它们放入下表中。单击该表查看其放大版本。
问答
我找到一些隐匿在 Microsoft 校园周围的 Windows CE 开发人员(我将自己假扮为出售机器袜的 Vanilla Coke),并设法从他们那里获得这些答案。
问:我可以在 Pocket PC 2003 设备上运行 Pocket PC 2002 应用程序吗?
答:可以。几乎所有使用 Pocket PC 2002 的工具编译的应用程序都可以运行在 Pocket PC 2003 设备上,除非 Pocket PC 2002 应用程序制定了一些低级别的、操作系统特定的假设,在这种情况下可能会出现问题。同样,eMbedded Basic 运行库不再位于 Pocket PC 2003 设备的 ROM 中,尽管它可以下载至 RAM 中。
问:以 eMbedded Visual C++ 4.0 编译的代码可以运行在 Pocket PC 2002 设备上吗?
答:不可以。但是,事实上 API 集是相同的,因此如果您用 eMbedded Visual C++ 3 重新编译代码,则对该代码进行稍许调整,它或许就可以很好地运行在 Pocket PC 2002 设备上。
问:对于现在开始为 Pocket PC 平台编写本机代码的开发人员来讲,可以采用的最佳方式是什么?需要创建两个版本吗,即 Pocket PC 2003 版本和 Pocket PC 2002 版本?
答:如果开发人员希望得到最广泛的支持,请使用 Pocket PC 2002 SDK 和 eMbedded Visual C++ 2002。使用 Pocket PC 2003 SDK 和 eMbedded Visual C++ 2003 仅会以 Pocket PC 2003 设备为目标。
问:Pocket PC 2003 版本中有什么特殊功能使其对支持 Pocket PC 2002 平台不感兴趣?
答:这比较难于回答,但是,2003 中确实有少许此类功能。是否是这些功能使其不愿支持 Pocket PC 2002,具体取决于每个开发人员的决定。一般而言,多数开发人员应当继续以 2002 平台为目标。
问:利用 Pocket PC 2003 SDK 创建的代码在 Pocket PC 2003 设备上的运行速度会比利用 Pocket PC 2002 SDK 创建的代码快吗?
答:并非如此。
问:Pocket PC 2003 仍然支持 MFC 和 ATL 吗?
答:是。
下期有什么内容?
这一阶段,您或许会气急败坏地敲击键盘以获取新的编译器、SDK 以及所有您需要的信息。好了,现在所有内容都位于一个易于使用的列表中。下载、读取、编译并享受其中的乐趣。下个月,我们将回头讨论编码,我保证!
Windows Mobile 2003 中的新内容
有关 Windows Mobile 2003 中的新内容,请访问 Web 站点 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/devmobfaq.asp。
Windows Mobile 2003 SDK 和 eMbedded Visual C++ 4.0
Microsoft 已将您需要的所有工具放在 CD-ROM 上了,并且物美价廉,只需 7.65 美元!您今天就可以在 http://www.microsoft.com/windowsmobile/information/devprograms/default.mspx 定购一份副本。
参考书目
最佳的 Windows CE / Pocket PC / SmartPhone 开发书籍是由 Douglas Boling 撰写的 Programming Microsoft Windows CE。该书最近刚更新至第三版,因此请确保您拥有的是最新版。
开发人员 FAQ
可在 http://www.microsoft.com/windowsmobile/information/devprograms/devfaq/default.mspx 浏览开发人员 FAQ。
John Kennedy 白天是 Visual C++ 组中的技术作家/程序员,晚上则是作为 Pocket PC 开发人员过着秘密生活。
Larry Roof 是 larryroof.com 的首脑,该公司专门从事移动项目咨询,以及针对 eMbedded Visual Basic、智能设备可编程能力和 SQL Server CE 的培训。
 
 
                     
            
        













 
                    

 
                 
                    