Qt还是Symbian C++?

Mic*_*ine 21 c++ mobile qt symbian nokia

我计划在Symbian系统上开发,但我不熟悉它.我知道(可能)最流行的Symbian开发方式是Symbian C++,我也听说过Qt.他们之间有什么区别?如果我希望我的应用程序在大多数Symbian系统上运行,我应该选择哪个?有人可以给我一些总体建议吗?

谢谢〜

Gar*_*ell 33

Symbian C++是C++的一种方言,其中编写了操作系统,从内核到应用程序框架.它在许多方面与标准C++不同,其中一些列在这里:

  • 不使用例外情况; Symbian使用自己的堆栈展开方法称为"叶子".其主要原因是,在创建Symbian时,C++标准仍处于开发阶段,当时的异常并未得到编译器的广泛支持.
  • 由于缺乏对异常的支持,动态分配内存的管理使用称为清理堆栈的专有机制.
  • 虽然STL的端口现在可用于Symbian,但这是最近的开发,因此操作系统有自己的字符串,数组,哈希等实用程序类.

总而言之,这些可以使学习Symbian C++变得非常困难,即使对于经验丰富的C++程序员也是如此.特别是清理栈和字符串类(称为描述符)通常会给Symbian C++开发增加很多开销.

与任何操作系统一样,除了需要了解本地语言之外,您还需要了解与您的开发领域相关的库.Symbian有一套非常丰富的库,涵盖了大量的功能(线程,IPC,图形,多媒体,网络,位置,消息,PIM,电话等).一旦你习惯了Symbian C++习语,这些库通常都非常强大并提供至少与其他平台相同的功能集.一个值得注意的例外是UI库,称为Avkon,与其他平台上的相应框架相比,现在已经过时了.

Qt旨在解决上面列出的一些问题,这些问题往往会使人们无法在Symbian OS上进行原生开发.具体来说,它支持更现代的C++编程风格,并包含一组非常先进的图形/ UI库.今天,Qt可以安装在最新的Symbian设备上.展望未来,它将构成一个全新的应用程序框架的基础,该框架将在S ^ 4版本的平台中引入(预计将在2011年发布的设备中).

我应该指出的一点是,在这一点上,Qt并未涵盖本机库的所有功能.从上面的列表中,虽然Qt提供线程,IPC,图形,多媒体和网络的抽象,但其核心库不包括位置,消息传递或PIM功能.因此,虽然您可以使用Qt编写(例如)FTP客户端,绘图程序或媒体播放器,但您无法使用它来编写消息传递客户端.因为Qt是C++,所以你可以将它与本机Symbian C++混合使用(例如,下载到平台API以访问消息传递),但这有点复杂.

这个功能差距由一个名为Qt Mobility的项目解决,该项目将引入Qt库,涵盖位置,消息传递和PIM等领域.

总之,如果您是Symbian的新手,Qt是要学习的应用程序开发环境,这样做还有一个额外的好处,即您还可以在其他平台上开发Qt应用程序(因为它是一个跨平台的工具包).


gur*_*ruz 7

去Qt.这将成为诺基亚全力以赴的方向.此外,您的程序也可能在Maemo/Meego上运行.