对于当初连Windows是基于消息机制都不知道的我来说,起点可以说是0。之所以写这篇文章,是想和大家分享我的经验,能够为那些初学者提供一些儿帮助。未来我工作和学习的重点将放在用户界面和多媒体开发上。欢迎和我交流,我的QQ是:3423 67 776。

言归正传,先来看看微软在操作系统方面的产品,桌面操作系统大体的历程:
MS-DOS
Windows 1.0
Windows 2.0
Windows 3.0
Windows NT 3.1
Windows 3.2
Windows 95
Windows NT 4.0(发布同一年——1996年,11月份发布Windows CE 1.0)
Windows 98
Windows ME
Windows 2000
Windows XP
Windows Vista
Windows 7
关于桌面操作系统发展史有很多有意思的事情,在此略过。(关于以后的文章中我总结一下《Windows Internals》读书笔记。)

嵌入式操作系统有:
Windows CE 1.0
Windows CE 2.0
Windows CE 3.0(改名为Windows for Pocket PC,简称Pocket PC)
Windows CE 4.0(即Windows CE.Net)
Windows CE 5.0(开放250万行源代码)
Windows Embedded CE 6.0(2006年11月推出,在内核方面改进了很多,比如内存管理等。并且共享100%内核源码。)

之后微软宣布将Windows Embedded CE Windows Embedded StandardWindows XP Embedded Windows Embedded EnterprisePOSReady( next generation of Windows Embedded for Point of Service)、 Windows Embedded NavReadyWindows Embedded Server组成Windows Embedded系列产品。

基于Windows CE操作系统的有:

网络投影仪、网络多媒体设备、车载计算机、电视机顶盒、生产在线的控制设备、公共场所的信息站等等,有些设备甚至没有任何人机界面。微软针对不同嵌入式设备推出不同定制的Windows CE内核,比如我们这里讲的Windows Mobile操作系统,它是专门针对智能手机的,在Windows CE内核基础上添加了智能手机所具有的功能和界面,还比如前段时间我看到微软推出针对MP4的专用操作系统。(关于Windows CE/Windows Mobile内核方面知识在此略过,我会在以后的文章中总结。)

现在让我们看看Windows Mobile操作系统的发展史:

Windows Mobile 6.0是基于Windows CE 5.0内核,所以内存管理方面跟Windows CE 5.0是一样的,Windows Mobile 7.0将采用Windows CE 6.0内核。

开发工具(第1、3两项需要向微软购买,如果仅仅是学习第4项你下个试用版就可以了。具体请看这里)

1.Platform Builder for Windows Mobile(注意和Windows CE版本的区别),在定制内核、内核调试(另外可以借助很多PB的插件)等操作中,它将是一个得力的助手。

2.Windows Mobile 6 Professional SDK(或者Standard版本的,这里仅仅提供Professional版本),在安装完Visual Studio之后安装Windows Mobile 6 Professional SDK Refresh.msi,然后安装中文包:Windows Mobile 6 Professional Images (CHS).msi。提供了你开发所需要的基本接口,和调试用的模拟器等。另外其它的头文件和Lib库等文件你可能需要在AKU里面查找。

3.Adaptation Kit Update(AKU),微软更新Windows Mobile的方式。来看看维基的解释:
"It is a collection of updates, fixes and enhancements to the tools delivered to hardware device manufacturers to create or update devices based on a specific platform.”
更多

4.Visual Studio 2005/2008(有很多提高开发效率的插件,比如Visual Assist X),VS自带的工具,如下图,都是很有用的。

5.ActiveSync,不管是真机还是模拟器,如果想与PC同步(比如手机通过PC来上网),需要使用这个工具。

6.SourceInsight(驱动开发常用的工具,管理、编辑代码很方便。)

7.在如内存泄漏等错误查找方面有很多专门的工具,比如Application Verify等。(请各位看官补充一下:))

整体开发流程

主要分为:硬件、Driver、RIL、应用程序。(在以后的文章中详细总结) 应用程序开发技术

语言:C/C++(Native Code)     VS   C#/VB/…(Managed Code)

选择什么开发方式就选择什么语言,选择Managed Code,即在.Net CF下开发,但是实现有些功能你需要P/Invoke Win32   DLL。比如在CodeProject上的一个使用C#编写的,在Windows Mobile上运行的iPhone界面程序,就调用了GDI API函数AlphaBlend来实现半透明。请看

关于本地代码开发和提高代码开发的比较有很多资料,这里不详细介绍了,它们的PK是开发效率和运行效率上面的PK。其实在一个项目中它们可能都是需要的。

.Net CF
是微软
.NET Framework 的子集合,专为Mobile Device上的Windows CE平台系列提供应用程序开发的支持。目前.NET Compact Framework最新版本为3.5,可运行在Windows CE 6.0以及Windows Mobile 6.0系统中。更多

Win32
我们团队用的最多的,开发效率低,直接使用系统的API,程序的运行效率比较高。因为Windows Mobile编程继承了Windows桌面编程风格,所以学习这方面知识你可以阅读《
Windows 程序设计(第5版)》、《Windows核心编程(第5版)》等书籍。

MFC
采用的倒是不多,简单的界面就直接编写个Win32应用程序,复杂一点的界面可以使用WTL或者使用.Net CF(第三方
OpenNETCF提供更多的扩展)进行托管开发。
MFC对Win32的封装跟WTL很多地方是相似的,封装的机制值得学习,关于这方面的基础视频推荐:《孙鑫C++视频》。

COM
扩展微软自带的应用程序,比如IE、Windows Media Player等,需要使用COM技术。
不单单如此,微软的技术很多都是构建于组件技术的,所以值得深入学习,推荐《COM技术内幕》(侯捷和潘爱民都有翻译)。

ATL
Active Template Library(活动模板库),是一个以
C++模板技术的类的集合,帮助你更方便的使用COM,创建ActiveX等。推荐阅读深入解析ATL(第2版)维基更多介绍

WTL
是一个用于研发的面向对象的C++模板函数库,它主要被开发作为MFC的轻量化替代品,以ATL函数库为基础。
一个使用WTL和使用MFC生产的应用程序的简单比较:
更多

Version

Size (in KB on disk)

MFC Debug

2030

MFC Release

212

WTL Debug

420

WTL Release

56

我们再来看看Windows Mobile 6.5及以后带给我们开发人员的好东西

用户界面(静态的、动态的和可交互的)一直是开发中的难点,怎样提高用户体验一直是开发中不断挖掘的东西。以下两个技术就是为此而生的:

Silverlight for mobile

Q: What is Silverlight?
A: Microsoft Silverlight powers rich application experiences and delivers high quality, interactive video across the Web and mobile devices through the most comprehensive runtime available on the Web.
Built to integrate with Microsoft Servers, Developer and Designer Tools and supported by a thriving partner ecosystem, the Silverlight solution accelerates the results of compelling experiences through powerful technology.

Q: How does Silverlight for mobile integrate with the standards-based Web?
A: Silverlight for mobile fully integrates with the standards-based Web technologies. On the client side, there is seamless DOM integration and bi-directional integration between Silverlight and JavaScript. On the server side, Silverlight can communicate with any standards-based server side technology including REST, POX, SOAP, and more.
目前Silverlight for mobile还在开发中,让我们期待一下吧。

Widgets

在Mobile上,它吸引我的地方在于它可以仅仅做成一个独立的基于网络交互的应用程序,它使用的技术就像我当初写网页用的技术一样:XHTML、CSS、AJAX、JavaScript,这相当爽的啊。那是在Today界面上编写一个天气预报的插件那是多么的方便啊,想想现在得用C++写,实属没办法。请看

A good way to think of a Windows Mobile Widget is as a “Portable chunk of the web” or just basically a rich internet application.  Widgets are written using all the web technologies we know and love (HTML, CSS, AJAX, JavaScript) and, since they are powered under the covers by our new internet browser, they have full access to flash and other ActiveX controls available on the device (Like MediaPlayer).

Widgets最初源于苹果电脑的一个插件工具——Konfabulator,现在W3C发布了关于Widget的标准草案。请看

学习和参考资料

[1].Windows Mobile 6.0/6.5/7.0 Documentation(最主要的资料。)

在你安装的Windows Mobile 6 Professional SDK目录下,有很多不错的Samples,初学者应该多阅读这里的代码: 里面的htm文件已经帮你归类了,比如: 你到论坛上面问的一些简单问题在这里都能找到答案。

[2].Microsoft WebCast开发资料(包括视频、PPT和示例代码,这是个好东西,我喜欢。你可以使用ireaper小程序方便的下载和管理这些资料。):

[3].CSDN Windows Mobile论坛

[4].MSDN Windows Mobile论坛

[5].Windows Mobile中国官方网站

[6].CodeProject/http://sourceforge.net//http://www.codeplex.com/(好东西啊)

[7].维基百科嵌入式系统介绍

[8].其它资源请见施炯的博客:Windows Mobile Jump Start Guide

作者: 王克伟
出处:
http://wangkewei.cnblogs.com/ 版权声明: 本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任的权利。
您可以从
这里更方便的找到我的文章。

Windows Mobile 开发相关推荐

  1. Windows Mobile 开发系列文章收藏 - 讨论篇

    关注Windows Mobile 应用开发, 探讨移动应用未来发展方向, 未来的手机又会是一个什么样子呢?  Windows Mobile 未来会发展成何种高度? 这些方面都值得我们去思考关注, 想了 ...

  2. Windows Mobile 开发工具和资源

    经常有朋友想学习 Windows Mobile 开发,体验移动开发的乐趣,但不知道从哪里下载各种开发工具和学习资料.于是我整理了一个列表,里面包含了各个版本的 Windows Mobile SDK, ...

  3. windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇

    之所以分解来写,是因为在写的过程中会有些穿插的工作,希望能够尽量写的更细节一些. 上篇说的是本地存储的XML和DataSet之间的交互,现在我们来看看windows mobile 是如何与数据库进行交 ...

  4. 转 Windows Mobile 开发工具和资源 黎波

    经常有朋友想学习 Windows Mobile 开发,体验移动开发的乐趣,但不知道从哪里下载各种开发工具和学习资料.于是我整理了一个列表,里面包含了各个版本的 Windows Mobile SDK, ...

  5. Windows Mobile开发应该选择哪种开发语言?

    Windows Mobile开发应该选择哪种开发语言?这个问题曾经被问了很多很多次,特别是打算开始学习Windows Mobile开发的朋友.Native Code or Managed Code? ...

  6. windows mobile开发循序渐进(1)关于平台和工具

    最近要进行windows mobile开发,很兴奋,因为之前对移动开发很感兴趣,并且做了一些B/S模式的开发,也做了一些包括WML和WEB移动开发的学习和开发,这次需要系统的整理一下windows m ...

  7. Windows Mobile开发资源相关下载收录

    最近收集了些关于Windows Mobile开发必备工具.以下资源完全是自己下载过的,直接从迅雷下载页面拷贝过来的地址.链接应该没问题的. Windows Mobile 6 Professional ...

  8. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x

    收集整理一些Windows Mobile 6.x开发相关文章, 文章及相关代码大部分搜集自网络,版权属于原作者! 智能手机      手机词汇      研发手机基本流程 WAP协议分析(1)     ...

  9. 学习Windows Mobile开发系列笔记(win32基本程序框架)

    一直对Windows Mobile开发很有兴趣.去年已经做过一个这方面的项目了,虽然自己看了很多资料,但是没有系统的学习过.现在应该还只是个入门者吧. 现在想系统的学习一番,我决定把Windows M ...

  10. Windows Mobile 开发常见问题集(转自zsu_darkwind的专栏)

    Windows Mobile 开发常见问题集 1.Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序? A:在Visual Studio的新建项目对话框中选择Visual C#或者Visua ...

最新文章

  1. C++学习之:复制和粘贴文件/文件夹
  2. 详解python中的用法_详解python中*号的用法
  3. rpm -e --nodeps_微课 | rpm的思维导图
  4. leetcode121买卖股票的最佳时机
  5. 5s突然一直信号无服务器,手机突然没信号了怎么回事?
  6. C++ 时间差的计算方式
  7. 期刊目录 核心期刊 计算机学术期刊等
  8. 吾爱破解crackme 023 024
  9. TMC2226-SA:静音防抖步进驱动
  10. 台式计算机对比评测报告,正常台式电脑测试报告.doc
  11. Ubuntu 截图工具
  12. 教师资格综合素质知识要点记录
  13. Jetpack Compose 动画开发实践:微博长按点赞彩虹
  14. cmake导入so库_CMAKE使用链接第三方SO库
  15. FreeRTOS 任务调度算法
  16. Win7 突然没声音 无法播放测试音调
  17. 一道经典SQL笔试题(求各部门最高薪水的部门名称、员工姓名以及薪水)
  18. 腾讯AI Lab:AI辅助诊疗系统面临的三大技术挑战
  19. HihoCoder——Trie树
  20. 华为云fusionsphere 6.1组件功能

热门文章

  1. 城市园林类毕业论文文献包含哪些?
  2. ubuntu安装php5.4
  3. 如何在 Python 中验证用户输入
  4. 根据 Windows 激活错误代码解决问题
  5. vue VantUI组件初探 使用
  6. 12306自动抢票软件哪个好?记者亲测体验
  7. 基于微信小程序云开发(校园许愿墙app)妄想替代学校的表白墙
  8. android xutils 注解,android Xutils dbutils 注解
  9. 计算机的专业的个人陈述,计算机专业留学个人陈述范文
  10. python面试题库——1Python基础篇