当前位置: 首页 > news >正文

Windows Embedded 6.0 R3开发初体验

我写了不少开发初体验的文章,以前总是在写别人做的产品。但是这次不太一样,因为我也参与了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处理器类型。

PB2

所有的BSP被放在WINCEROOT的Platform目录下,主要有四种处理器类型:ARMV4I、MIPS、SH4和x86。在这里需要特别指出的是,我们将第三方BSP拷贝到Platform目录中后,该BSP的名称会自动显示在这个列表里。如果BSP无法显示,可能是因为安装时没有选择BSP相应的处理器类型。

在选择BSP之后,我们选择OS Design的模板类型:PDA Device中的Enterprise Web Pad。点击Finish按钮,完成向导,进入PB的主界面。

PB4

选择新组件

接下来,我们来选择Windows CE 6.0 R3新增加的组件。首先打开Platform Builder的Catalog Items View。如果在IDE中没有显示,可以在View菜单中的Other Windows里找到,并显示出来。

sl

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就可以了。

clip_image006

截图中显示的不是绿色的勾,而是一个红色的叉。我们得到的解释是,这是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

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。

cn

编译OS Design后,我们可以在开始菜单后看到QQ的快捷方式,运行后的界面如下:

qq2

最后留个悬念,大家猜一下下面的应用程序界面是用什么做的?

cid

相关文章:

  • 《程序员羊皮卷》荣升当当IT图书飙升榜第一名
  • 规划大学生活,成就梦想明天--《程序员羊皮卷》高校公益巡讲介绍
  • iPhone开发指南-事件处理
  • 如何免费得到《程序员羊皮卷》中需要的章节?
  • 大话3G——手机大佬“摩托罗拉”兴衰史
  • tomcat6.0下中文字符转换的疑似bug
  • ArcGIS Server Java ADF 案例教程 v9.3.1 PDF 版本
  • 一次架构设计的摸索
  • 结构化思维
  • Not live in vain——Leo关于生与死的感悟
  • iPhone开发指南-应用程序核心
  • 数据库设计三大范式
  • 揭开网管行业认证新篇章的“网管师考试教材发布会”圆满结束
  • c++日积月累-const
  • c++日积月累-inline
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Codepen 每日精选(2018-3-25)
  • Elasticsearch 参考指南(升级前重新索引)
  • golang 发送GET和POST示例
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Laravel 菜鸟晋级之路
  • PHP面试之三:MySQL数据库
  • vue-router的history模式发布配置
  • vuex 笔记整理
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 百度小程序遇到的问题
  • 成为一名优秀的Developer的书单
  • 区块链将重新定义世界
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 首页查询功能的一次实现过程
  •  一套莫尔斯电报听写、翻译系统
  • 再谈express与koa的对比
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​queue --- 一个同步的队列类​
  • ​比特币大跌的 2 个原因
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #define与typedef区别
  • #Linux(权限管理)
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (6)设计一个TimeMap
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (篇九)MySQL常用内置函数
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (推荐)叮当——中文语音对话机器人
  • (一)appium-desktop定位元素原理
  • (一)VirtualBox安装增强功能
  • (转)Oracle存储过程编写经验和优化措施
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net 流——流的类型体系简单介绍