C++ 跨多种诺基亚设备开发应用程序的方法

C++ 跨多种诺基亚设备开发应用程序的方法,c++,qt,java-me,symbian,nokia,C++,Qt,Java Me,Symbian,Nokia,首先,向大家致意,感谢你们对我的问题感兴趣 我目前在一家移动创业公司工作。我们的产品是一款针对Android、iOS和BlackBerry设备的通信应用程序,我们希望能够扩展到一些诺基亚平台 我不知道很多关于Symbian的细节,因为我以前从未在这个平台上实际编程过,但这是我能够收集到的所有信息 支持的平台包括Symbian S60、Symbian^3/Symbian“Anna”、Maemo+Meego 为了实现这一点,我们可以使用几种工具,但我们不确定使用哪种工具 诺基亚Qt似乎在Symbia

首先,向大家致意,感谢你们对我的问题感兴趣

我目前在一家移动创业公司工作。我们的产品是一款针对Android、iOS和BlackBerry设备的通信应用程序,我们希望能够扩展到一些诺基亚平台

我不知道很多关于Symbian的细节,因为我以前从未在这个平台上实际编程过,但这是我能够收集到的所有信息

支持的平台包括Symbian S60、Symbian^3/Symbian“Anna”、Maemo+Meego

为了实现这一点,我们可以使用几种工具,但我们不确定使用哪种工具

诺基亚Qt似乎在Symbian S40设备上不受支持(我们似乎一直使用J2ME)和Symbian S60设备第三版之前的功能包1

的Symbian的C++,我们不能依赖C++的STL。这意味着我们可以创建同一软件的两个版本,或者创建与Symbian兼容的STL(我希望避免这种情况)

方法 团队中的共识似乎是将其分为两个逻辑部分:

  • C语言中的核心业务逻辑+库++
  • 使用Qt或本机UI工具的特定于设备的UI分支
考虑到所有这些信息,我问:

  • 解决这个问题的一般方法是什么?上面提到的一个是否存在任何明显的缺陷,即与旧平台上的Qt不兼容或不一致

  • 为了确保该应用程序在所有列出的诺基亚设备上的兼容性和性能,我们应该避免哪些陷阱

  • 有没有办法绕过Symbian对STL的C++限制?我们能以某种方式捆绑Qt源吗


    欢迎提出建议和其他办法。谢谢你的反馈。

    你应该考虑Symbian是一个垂死的平台,所以我不会把巨大的开发投入投入到Symbian应用程序中。更不用说我使用Symbian C++了。Qt是一个很有前途的平台,但诺基亚/微软宣布Windows phone将没有Qt端口(这可能会让您感兴趣)。 也许您应该只通过Java ME支持诺基亚设备,因为Symbian占有很大的市场份额,但大多数设备不是可以运行Qt应用程序的智能手机


    <>你的方法听起来很理想化,但是我不确定你是否可以使用java语言中提到的C++逻辑库来实现业务逻辑。这可能吗?

    我没有你那么多的经验,但据我说,Qt对应用程序开发很有好处。只需编写一次代码,就可以针对多个平台 Qt允许您一次性编写高级应用程序和UI,并跨桌面和嵌入式操作系统部署它们,而无需重写源代码,从而节省时间和开发成本。
    谢谢

    有一些STL实现可以在Symbian上使用。 我曾经是一个团队的帽子,使用Scbian设备上的C++核心(STL),从S60V1到S60V5以及UIQ、S80和S90。windows mobile上也使用了相同的内核。 我们在STL实现中使用了STLPort,但我无法再次找到该特定版本。我相信还有其他的Symbian STL实现


    另一方面,S60设备有一个非常有能力的J2ME运行时,因此如果您必须为S40设备开发一个J2ME应用程序,那么您也可以在S60上使用它

    关于问题1。Symbian S60第3版(据我所知,S60第3版和S60第5版O_O中有细分,第3版用于非触摸设备,第5版用于触摸设备)将限制在Qt 4.6.x,而其他版本将继续更新,现在他们在4.7.x中,最重要的功能是一种叫做Qt Quick的酷技术。我们将不得不依靠J2ME平台来支持Symbian S40设备。对于S60和Symbian^3设备,J2ME运行时施加了一些严重的限制,这些限制只能通过C++/Qt运行时提供,这就不可能出现这种情况。我听说STLPort的质量不高。STL和的其他端口通常不完整,EA除外(但其许可证限制其使用)。我还读到你只能在WindowsPhone7ATM上使用C(除非你指的是旧的WinMo版本),我们可以使用与C库相同的库吗?最后,我们已经为我们的黑莓应用程序编写了一些J2ME组件,这很有帮助。我从来没有使用过WindowsPhone7,我指的是旧版本的WinMo。但作为一个例子,它仍然是有效的,我们在Linux系统(托管和移动)上使用了同样的C++核心。对于不同的平台,您可能需要不同版本的STL,但这主要是一个构建问题。我们在STL端口质量方面没有问题,但今天应该有其他更现代的Symbian STL端口可用。在S60上运行S40/黑莓J2ME应用程序可能比用普通C++内核运行代码少。