Qt 还是 Symbian C++?[关闭]
题
我打算在Symbian系统上进行开发,但我不熟悉它。我知道(可能是)Symbian 上最流行的开发方式是 Symbian C++,我也听说过 Qt。他们之间有什么区别?如果我希望我的应用程序在大多数 Symbian 系统上运行,我应该选择哪个?有人可以给我一些总体建议吗?
谢谢~
解决方案
Symbian C++ 是 C++ 的方言,从内核到应用程序框架都是用 C++ 编写的。它在很多方面与标准 C++ 不同,此处列出了其中一些:
- 不使用异常;Symbian 使用自己的堆栈展开方法,称为“leaves”。主要原因是Symbian创建时C++标准仍在开发中,当时编译器还没有广泛支持异常。
- 由于缺乏对异常的支持,动态分配的内存的管理使用称为清理堆栈的专有机制。
- 虽然 STL 的端口现在可用于 Symbian,但这是最近的开发,因此操作系统有自己的字符串、数组、哈希等实用程序类。
总而言之,即使对于经验丰富的 C++ 程序员来说,这些也会使学习 Symbian C++ 变得相当困难。尤其是清理堆栈和字符串类(称为描述符)通常会给 Symbian C++ 开发增加相当多的开销。
与任何操作系统一样,除了需要了解母语之外,您还需要了解与您的开发领域相关的库。Symbian 拥有非常丰富的库集,涵盖大量功能(线程、IPC、图形、多媒体、网络、位置、消息传递、PIM、电话等)。一旦您习惯了 Symbian C++ 习惯用法,这些库通常非常强大并提供至少与其他平台相同的功能集。一个值得注意的例外是 UI 库,称为 Avkon,与其他平台上的相应框架相比,它现在已经相当过时了。
Qt 旨在解决上面列出的一些问题,这些问题往往会阻碍人们在 Symbian 操作系统上进行本机开发。具体来说,它支持更现代的 C++ 编程风格,并包含一组非常先进的图形/UI 库。今天, Qt 可供安装 在最新的 Symbian 设备上。展望未来,它将构成一个全新的应用程序框架的基础,该框架将在 S^4 版本中引入 该平台 (预计用于 2011 年发货的设备中)。
我应该指出的一件事是,目前 Qt 并未涵盖本机库的所有功能。从上面的列表中可以看出,虽然 Qt 提供了线程、IPC、图形、多媒体和网络的抽象,但其核心库不包括位置、消息传递或 PIM 功能。因此,虽然您可以使用 Qt 编写(例如)FTP 客户端、绘图程序或媒体播放器,但您不能使用它来编写消息传递客户端。因为 Qt 是 C++,所以你 能 将其与本机 Symbian C++ 混合(例如,下拉到平台 API 来访问消息传递),但这有些复杂。
这个功能差距正在由一个名为 Qt 移动, ,其中将介绍涵盖位置、消息传递和 PIM 等领域的 Qt 库。
总而言之,如果您是 Symbian 新手,Qt 是值得学习的应用程序开发环境,这样做的额外好处是您还可以在其他平台上开发 Qt 应用程序(因为它是跨平台工具包)。
其他提示
转到Qt的。这将是所有诺基亚将会方向。加上你的程序将那么很可能在Maemo操作/ Meego的运行了。
这里有 7 个可用工具包的比较 -Symbian C++、Qt、Open C\C++、Python、Widgets、Java ME、Flash Lite: 运行时空间搭便车指南
答案是有点晚了,但在这里,从 Symbian C ++的是在诺基亚开发者维基:
的Symbian C ++,为Symbian天然编程框架,是一种 的C惯用变体++对于低存储器设备进行了优化。虽然Qt是 现在推荐的本地框架创建的Symbian应用程式,我们 继续与Symbian C ++的工作提供了对工具。这个 继续支持使您能够保持传统应用程序和 他们迁移到Symbian平台的最新版本。
这听起来像Qt的现在优选的,并且新的项目应使用Qt。