当前,基于WM(Windows Mobile)/UNIX/Linux系统的嵌入式开发已成为终端通讯产品的主流开发模式。终端通讯产品,特别是手机,随3G时代的到来,将引领当前潮流。双模式手机产品更是未来手机的发展趋势。
工作之余,整理了WM Platform双模手机的开发流程及框架。
首先,请一定要弄清楚Windows程序内部运行原理。
Windows应用程序、操作系统与输入输出设备三者之间的交互如下:
其中:
(1)Windows程序设计是一种事件驱动方式的程序设计模式,主要是基于消息的。当用户需要完成某项功能时,会调用操作系统的某项支持,然后操作系统将用户的需要包装成消息并投递到消息队列中,最后应用程序从消息队列中取走消息并进行消息响应。
(2)应用程序通过函数调用的方式来通知操作系统执行相应的功能。一般情况下,操作系统所能完成的每一个功能都有一个函数与其对应。因此,应用程序对这些函数的调用就称为系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口,简称Windows API(Application Programming Interface)。
(3)操作系统将每一个事件都包装成一个称为消息的结构体MSG来传递给应用程序,然后应用程序对事件进行处理。对事件做出反应的过程称为消息响应。
其次,请弄清楚WM Platform双模手机开发框架中每一层的功能,便于Bug的定位及调试。
一般情况下,基于WM Platform双模手机的开发框架图如下:
其中:
(1)左边为基于WM Platform的主模式,右边为内嵌的副模式。
(2)主模中各层的主要功能如下:
APP:①用户信息的显示和用户操作的管理。②同API进行交互。
API:①给APP提供调用接口和同RilProxy进行交互。②实现系统的兼容性、重用性和安全性。
RilProxy:①將进程函数回调到RilDriver层。②同API和RilDriver进行交互。
RilDriver:同RilProxy和Module进行交互,包括Active信息。
Module:①实现网络的通信功能。②同RilDriver进行交互。
(3)副模中各层的主要功能如下:
APP:通过主模中提供的Cprog.exe程序实现与主模中APP相同的功能。
TSPI:由主模中API层提供的TSPI来进行交互。
Driver:作用等同于主模中的RilProxy层和RilDriver层 。
Module:①实现网络的通信功能。②同RilDriver进行交互。
最后,请注意如下两点:
(1)副模式的流程及框架理论上应与主模式相同,但实际设计中常把作交互的层合并在一起。因此,副模式的流程及框架可以有所不同。
(2)WM有很多不同版本,具体细节可查询最新的MSDN。
注:(1)双模手机中涉及的术语可能有不同的名称。(2)为适应发展,Microsoft已将WM改成WP(Windows Phone)了。