简介
微软公司的 Windows CE 是专门为该公司提出的“信息电器”设计的紧凑型操作系统。按照微软公司的定义,所谓的“信息电器”范畴很广,包括手持计算装置、移动电话、汽车和工业设备。在本文发表之时(2000年初),CE在“大众市场”上的占有率还很低(但它在专业市场上的占有率是比较高的)。可能是部分地因为市场占有率的原因,CE的下一版本,3.0版,将改称PocketPC。究竟开发者和工业界是否会因这一名称的改变而转而青睐CE,我们可以拭目以待。本文的目的,并不是要阐述CE的市场策略,而是要对CE的能力和其对设备的要求做一个概述,以便帮助你在购买或进行开发时做出明智的参考。
Why Windows CE?
对于那些习惯于在微软公司的 Windows 系列(95/98/NT/2000等)操作系统平台上进行开发的人们,Windows CE 的开发还是颇有挑战性的。原来的 Windows 应用程序必须经过重新编译,才能运行于 CE 的硬件平台上 (CE 装置并不一定使用Intel x86 的芯片...)。在某些情况下,由于CE 的应用程序接口(API)与标准的Windows API之间的差异,必须对原来的代码进行重大修改后才能移植到CE上。此外,Windows CE 支持的内存容量和显示屏的面积也很有限,这是开发人员不得不考虑的方面。现在,有三种装置配备了 CE 系统:
手持电脑 - 手持装置具有一个分辨率为 640 x 240 象素的显示屏、带有一个小键盘的触摸屏、可以选装的声卡和一个CompactFlash 和/或一个 PCMCIA 插槽
掌上电脑 - 手掌大小的装置。具有一个分辨率为 240 x 320 象素的显示屏,没有键盘或鼠标,选装声卡和一个 CompactFlash 插槽
汽车电脑 - 装置于汽车上的电脑。具有声控系统、无线通讯和一个内置的导航系统。
这些设备的用户界面与标准的 Windows 界面非常相似,同样在显示屏底部有一个用以启动和控制应用程序的任务条。工业界的许多厂商都将这个界面看作是 CE 的一个缺陷,而且微软公司也声称将在 CE 3.0版中对这个界面进行修改。这个界面的设计实际上也是 Palm OS 和 Windows CE之间最明显的区别。相对而言,Palm 的设计非常高效,而且易于使用,而 CE 的设计似乎是要求用户将在使用 Windows 时形成的习惯带到一个只具有小屏幕和不同外形因素的环境中去。许多 CE 的用户很喜欢这个通常的用户界面,但是这也造成了一个问题:使用手持装置的用户通常不需要在一个标准桌面环境中处理任务。使用 Windows CE 时,即使是查找一个电话号码这样的简单任务,也需要你不断的重复点击和选择菜单的动作。这就是为什么 Palm 的市场份额比 Windows CE 大的主要原因。但是,可以说 Palm 和 Windows CE 的市场份额之争才刚刚开始。就像当初 Windows 推出早期版本时,很少有人问津,说到垄断市场就象痴人说梦。现在你能说 Windows CE 就一定会失败吗?还是让我们一起来看看这些产品是如何走向成熟,为满足用户的要求而逐步改变的吧!
平台能力
Windows CE 的功能是有别于象 Windows 2000 这样的“工业级”操作系统的。CE 能够运行于内存和电能都很有限的设备上,而且也很容易移植到一个新的硬件体系上。
多线程,多任务
Windows CE 是一个32位的、多线程、多任务的操作系统。这也是它区别于象 Palm OS 这样的竞争对手的主要特色。此外,在设计思想方面,Palm Computing 公司的设计人员认为手持装置的用户只是需要快速和有效地获得一些简单的信息,因此他们选用了一个简单的、省电的操作系统;而 CE 的设计人员则相反,他们给用户提供了一个功能强大的解决方案,以帮助用户运行一些复杂的应用软件,比如象 MP3 和视频回放软件、电子制表软件等。使用 Benchmarks 软件测试的结果表明,运行于 MIPS 和 SH3 的硬件系统上的 Windows CE 操作系统要比运行在 Motorola 的龙珠处理器上的 Palm OS 要强大得多。当然,这只是选择操作系统时要考虑的一个因素。另外,你还要考虑处理日常事务时的任务性质,以及你希望电池能用多久,Palm 装置的电池能维持6周的时间,而一个 CE 彩色装置,一天功夫就能耗尽你的电池(当然,你还可以充电后再使用)。
电源管理
Windows CE 被设计成可以适用于许多处理器上,而且在每种处理器上的电源管理都是不同的。CE 的 API 还可以检测电池的剩余电量、检查是否正在使用直流电源以及是否正在充电中。而且 CE 的应用程序还可以提醒用户注意电池的电量,并在电量不足时能够正常地退出。
数据管理和同步
Windows CE 的 API 还支持访问对象数据库。这种数据库支持数据压缩、搜索、排序以及通过 Microsoft ActiveSync 来与桌面 PC 进行数据同步。ActiveSync 支持与其它微软公司的软件(例如用于通信和联络的 Outlook 和数据库管理软件 Access)之间的数据同步。
串口通信
串行通信通过 CE 装置上的串行口(通常是COM1口)进行。大多数标准的 Win32的通信 API 已经被移植到 CE 中,因此你以前写的所有通信程序只需做些微修改就可以快速地移植到一个 CE 装置上。
红外连接
红外通信使用工业标准的 IRDA 协议通过 IR 串行口进行。红外通信可以在多个设备之间进行,并且 CE 也提供了许多相关的 API 来完成这些任务。
网络通信
许多 Windows CE 装置上都带有 CompactFlash 插槽,可以支持以太网连接和无线局域网连接(需使用象 Proxim RangeLan2 这样的为 Windows CE 设计的无线网卡)。一些手持电脑设备还有一个 PCMCIA 槽,使得这些 CE 装置可以使用许多附加设备,比如网络、GPS和Modem卡。
音效
Windows CE 支持立体声,但是大多数的标准 Win32 API 并不支持这一功能。Windows CE 的 API 不支持录音和使用 WAV 格式的回放。但有许多第三方厂商提供的 MP3 播放器可以用来扩展 CE 在这方面的能力。
可扩展性
Windows CE 装置可以通过它所带的 CompactFlash 插槽进行扩展(按照定义,所有的掌上电脑都应带有这一插槽),使之能够增加内存和方便快捷地与其它设备进行连接。
开发技巧
如果你从未在手持装置上进行过开发,那么你需要注意许多与标准桌面应用程序开发不同的地方。以下几点是需要牢记的:
记住,屏幕是很小的。因此你设计的程序一定要避免让用户连翻几个屏幕才能找到操作之处。
处理能力是有限的。因此你应尽可能地用数据的原始格式进行存储,把那些数据分析的工作留给桌面工作站或企业服务器吧。因为在大多数情况下,手持装置只是用于收集数据,而不是用于数据分析的。
内存也非常小。“因为空间和能力有限,进行程序优化是很有必要的。要使你的程序尽可能的快而且高效,首先要优化堆空间,其次是运行速度,然后是代码体积”——摘自 Palm Computing 公司的《Palm OS 程序员伴侣》。
用户界面要友好。对标准的 CE 应用程序的工作过程要有感性认识,并严格地按照它们的风格来设计你的程序。尽量使你的程序既能满足用户需求,又能只需简单操作即可实现丰富的功能。
简化数据同步的过程。一个好的应用程序应能屏蔽数据同步的具体细节,只需用户做一些简单操作即可。
目前的无线通信功能是有缺限的,而且并不怎么可靠。尽量减少要传送的数据,并多测试你的程序。如果你正在开发一个无线应用程序,那么你最好去开发商(比如NetTech、Aether和IBM)那获取无线通信的中间件。这些中间件可以将应用层从下面的通信层隔离出来以便提供更强的易用性和可维护性。