我打算在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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top