我计划在Symbian系统上进行开发,但我不熟悉它。我知道(可能)最流行的Symbian开发方式是Symbian C++,我还听说过Qt。它们之间有什么区别?如果我想让我的应用程序在大多数Symbian系统上运行,我应该选择哪一个?
有人可以给我一些总体建议吗?
谢谢~
Symbian C++是一种特殊的C++方言,操作系统从内核到应用框架都是用它来编写的。与标准C++相比,它有以下一些区别:
以上这些综合起来,即使是经验丰富的C++程序员也可能会觉得学习Symbian C++很困难。特别是清理堆栈和字符串类(称为描述符),通常被认为会为Symbian C++开发增加相当大的开销。
与任何操作系统一样,除了需要了解本地语言外,您还需要熟悉与所开发领域相关的库。Symbian拥有非常丰富的库集,涵盖大量功能(线程、IPC、图形、多媒体、网络、位置、消息、PIM、电话等)。一旦您习惯了Symbian C++的用法,这些库通常非常强大,并提供至少与其他平台相当的功能集。唯一的例外是UI库——Avkon,在与其他平台上相应的框架相比时现在有些过时。
Qt旨在解决一些会让人们对Symbian OS本地开发却步的问题。具体而言,它可以实现更现代化的C++编程风格,并包含了一套非常先进的图形/界面库。如今,Qt已可在大多数最新的Symbian设备上安装使用。展望未来,它将成为一个全新应用框架的基础,在S^4版本的平台(预计从2011年开始出货的设备)中引入。
需要指出的是,目前Qt并没有涵盖所有本地库的功能。如上所述,虽然Qt提供了线程、IPC、图形、多媒体和网络的抽象,但其核心库不包括位置、消息或PIM功能。因此,尽管你可以使用Qt编写FTP客户端、绘图程序或媒体播放器等应用,但不能用它编写消息客户端。由于Qt是C++,你可以将其与本地Symbian C++混合使用(例如,降到平台API以访问消息),但这有些复杂。
这个功能差距正在被称为Qt Mobility的项目解决,它将引入覆盖位置、消息和PIM等领域的Qt库。
总之,如果你是Symbian新手,Qt是学习应用开发环境的不二选择,而且这样做还有另外一个好处,就是你也可以在其他平台上开发Qt应用程序(因为它是一个跨平台的工具包)。
选择Qt吧。这是诺基亚最主推的方向。而且您的程序很可能也可以运行在Maemo/Meego系统上。
这里有7个可用工具包的比较 -Symbian C++, Qt, Open C\C++, Python, Widgets, Java ME, Flash Lite- 可以参考:《漫游者指南:运行时空间》
回答有点晚,但这里是来自Nokia Developer wiki的Symbian C++:
Symbian C++是Symbian的本地编程框架,是C++的惯用变体,针对低内存设备进行了优化。虽然Qt现在是创建Symbian应用程序的推荐本机框架,但我们仍然提供使用Symbian C++的工具。这种持续的支持使您能够维护遗留应用程序并将其迁移到Symbian平台的最新版本。
听起来Qt现在更受欢迎,新项目应该使用Qt。