Win 程序员如何过度到Symbian程序员?

http://tech.ddvip.com   2008年06月15日    社区交流

内容摘要:本文讨论了当一个典型的Windows C++程序员初次接触Symbian操作系统时可能遇到的问题。我们开发过三个成功版本Symbian操作系统的经验使我们十分清楚在这个不算丰富稳定的环境中工作什么才是困难的。

  作为前面被我们一带而过的Symbian的其它方面,在图形领域,为了使系统的总开销尽可能低,有些应用程序的代码开销也被考虑在内。Symbian确确实实提供的特性是优雅和绝大多数情况下的一致性,而且现在在文档方面已经做得很好了,他使创建平滑的图形动作变得相对简单。

  8.消息,异步服务和活动对象。

  MFC在对无论是初级还是了解驱动他们应用程序的消息循环和调度机制的高级程序员隐藏Windows消息范例方面做得很好。在Symbian操作系统中,驱动应用程序的是一套完全不同又十分强大的机制,被称为活动对象。它与Symbian操作系统的客户端-服务器端结构紧密结合,提供了各种系统服务,同时也可以为程序员所使用来给他们可能需要为应用程序创建的任何异步服务建立干净、标准的接口。

  简而言之,CActiveScheduler执行了Windows消息循环,在一个给定线程内提供了共用的多任务,CActive(一个活动对象)充当了消息处理者。在Symbian的UI框架中,这要比MFC把消息隐藏得更好:接收到的消息总是由框架调度给预先定义的可以被应用程序重载的方法——比如OfferKeyEventL(处理键盘输入)。

  定时器是使用了活动对象框架的简单系统服务的一个实例。不同于Windows中调用StartTimer来触发WM_TIMER消息的做法,Symbian操作系统中是由一个CTimer对象与系统时钟服务进行交互,RTimer与其RunL函数根据由API规定的时间间隔被调用。程序员从CTimer继承到一个对象,并重载RunL方法。

  其它的异步系统服务,如Nokia 7650上的照相机功能也是通过类似方法提供的。CCameraManager定义了一个活动对象提出拍照操作的请求并随即获得通知。实际的异步服务是由RCameraServ提供的,但是典型的程序员根本用不着处理任何客户端-服务器端或者显式的进程间通信问题。

责编:豆豆技术应用

正在加载评论...