我从事Windows Mobile开发半年多了,这半年很努力,收获也很多。对于当初连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 Standard 、Windows XP Embedded 、
Windows Embedded Enterprise 、POSReady( next generation of Windows Embedded for Point of Service )、
Windows Embedded NavReady 、Windows 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 摘自:http://dev.mmarket.com/cmdn/bbs/viewthread.php?tid=11035&page=1 |

1071

被折叠的 条评论
为什么被折叠?



