我写了不少开发初体验的文章,以前总是在写别人做的产品。但是这次不太一样,因为我也参与了Windows Embedded 6.0 R3的开发。这也是Windows Embedded的中国研发团队的第一个产品,希望大家能够多多关注和支持。
开发环境
Windows Embedded 6.0 R3是在Windows CE 6.0 R2的基础上,增加了下列技术:
· Silverlight for Embedded
· Internet Explorer Embedded浏览器
· Flash Lite支持
· 手势识别Gesture API
· Connection Manager
· Mobile QQ
· Office Viewer
其中Internet Explorer Embedded是由Windows Embedded中国研发团队单独开发的。而Mobile QQ是由腾讯公司开发整合的。所以,这给Windows CE 6.0 R3打上了深深的中国印记。
如果想安装Windows CE 6.0 R3的话,需要首先安装Visual Studio 2005,以及VS 2005 SP1。如果是Vista或者Win7操作系统的话,还需要安装VS 2005 Vista Update。
然后我们要安装Windows CE 6.0,其中包括Platform Builder 6.0开发工具。然后再依次安装Windows CE 6.0 R2和R3。如果已经安装了R2,只需要安装R3的安装包即可。
最后,我们可以选装Mobile QQ和Office Viewer。因为这两个软件是第三方软件,所以是以Windows CE 插件的方式单独安装。
以上所有软件可以从微软网站上下载。Windows CE 6.0需要申请试用版的密钥。下载链接如下:
http://www.microsoft.com/windowsembedded/zh-cn/products/windowsce/getting-started.mspx#opt
定制操作系统
Windows CE操作系统定制与Windows CE 6.0 R2没有区别,仍然是通过来向导进行定制。首先在Visual Studio 2005的菜单中选择New – Project,在对话框中选择Platform Builder for CE 6.0节点,选择OS Design类型。
在欢迎界面之后,选择BSP。BSP是板级支持包的缩写,BSP与硬件设备对应。指定我们创建的OS Deign运行在哪些设备上。在这里我们选择Device Emulator,ARMV4I是Device Emulator处理器类型。
所有的BSP被放在WINCEROOT的Platform目录下,主要有四种处理器类型:ARMV4I、MIPS、SH4和x86。在这里需要特别指出的是,我们将第三方BSP拷贝到Platform目录中后,该BSP的名称会自动显示在这个列表里。如果BSP无法显示,可能是因为安装时没有选择BSP相应的处理器类型。
在选择BSP之后,我们选择OS Design的模板类型:PDA Device中的Enterprise Web Pad。点击Finish按钮,完成向导,进入PB的主界面。
选择新组件
接下来,我们来选择Windows CE 6.0 R3新增加的组件。首先打开Platform Builder的Catalog Items View。如果在IDE中没有显示,可以在View菜单中的Other Windows里找到,并显示出来。
Silverlight for Windows Embedded的组件位于Core OS\CEBASE\Shell and User Interface\User Interface\目录下的Silverlight for Windows Embedded,对应的SYSGEN是SYSGEN_XAML_RUNTIME。
手势识别Gesture的支持离得不远,位于Core OS\CEBASE\Shell and User Interface\User Interface\Gesture目录下的Gesture Animation Support,对应的SYSGEN是SYSGEN_PHYSICSENGINE。还有两个相关的SYSGEN就不多做解释了。
Connection Manager位于Core OS\CEBASE\Communication Services and Networking\Networking – General\Connection Manager\目录下的Connection Manager,对应的SYSGEN是SYSGEN_CONNMGR。
Internet Explorer Embedded位于Core OS\CEBASE\Internet Client Services\Browser Application\Internet Explorer 6.0 for Windows Embedded CE - Standard Components\目录下的Internet Explorer 6.0 XAML UI Sample Browser,对应SYSGEN是SYSGEN_IESAMPLE_EXR。还有一个相关的组件是Internet Explorer 6.0 Tiling Engine(SYSGEN_IE_TILEENGINE)。
Flash Lite的支持是在Core OS\CEBASE\Internet Client Services\Browser Application\Flash Lite目录下的Adobe Flash Lite ActiveX Control,对应SYSGEN是SYSGEN_IE_FLASHLITE。
Flash Lite可以支持新的IE Embedded,也可以支持老的IESAMPLE。
添加QQ
这么说大家没什么概念,我们就来看一个实例,将QQ加入到OS Design里。如果已经安装了Mobile QQ的MSI安装包,我们会在Third Party\Tencent节点下,选上Tencent Mobile QQ就可以了。
截图中显示的不是绿色的勾,而是一个红色的叉。我们得到的解释是,这是Platform Builder 6.0的一个BUG,会在以后修复,而不会影响正常功能。
Mobile QQ也会加入一些关联的SYSGEN,比如Cellcore的SMS等。Mobile QQ目前只有中文版,所以,我们还要为OS Design添加中文支持,否则显示会不正确。
在Solution Explorer里选中OSDesign,然后在Project菜单里选择Properties。在弹出的对话框里,选择Configuration Properties节点里的Locale。在右侧的界面中,Locales里选择“简体中文”,在Default locale里选择“简体中文”。
Locale设置完成后,还需要添加中文字体。在Catalog Items View中,选择Core OS\CEBASE\International\Locale Specific Support\Chinese (Simplified) 目录下的一些节点,包括Fonts\ SimSun & NSimSun(Choose 1)中的SimSun & NSimSun,SYSGEN是SYSGEN_FONTS_SIMSUN。还有Input Method Editor目录下的Pocket IME,SYSGEN是SYSGEN_PIME_SC。
编译OS Design后,我们可以在开始菜单后看到QQ的快捷方式,运行后的界面如下:
最后留个悬念,大家猜一下下面的应用程序界面是用什么做的?