跨多个诺基亚设备开发应用的方法

6

首先,向大家问好,并感谢你们对我的问题的关注。

我目前在一家移动创业公司工作。我们的产品是一款针对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分支

有了所有这些信息,我想问:

  1. 针对这个问题的一般方法是什么?在旧平台上,该方法是否存在不兼容或不一致的问题,尤其是与Qt有关的问题?

  2. 我们应该避免哪些陷阱,以确保该应用程序在列出的所有诺基亚设备上都具有兼容性和性能?

  3. 有没有办法绕过Symbian的C++ STL限制?我们可以以某种方式捆绑Qt源码吗?

欢迎提出建议和其他方法。感谢您的反馈。


对于问题1,Symbian S60第3版(据我所知,S60第3版和S60第5版有一个细分,第3版适用于非触摸设备,第5版适用于触摸设备)将仅限于Qt 4.6.x,而其他版本将继续更新,目前它们处于4.7.x,其中最重要的功能是一种称为Qt Quick的酷技术。 - Miguel López
3个回答

2
考虑到Symbian是一个逐渐消亡的平台,因此我不建议在Symbian应用程序上进行大量开发投入。更何况,我不会使用Symbian C++。Qt是一个有前途的平台,但Nokia/Microsoft宣布将不会为Windows手机提供Qt移植(这对您可能很有兴趣)。
也许您应该仅支持Java ME的诺基亚设备,因为Symbian市场份额很大,但大多数设备都不是智能手机,无法运行Qt应用程序。
您的方法听起来非常理想化,但我不确定是否可以从Java ME中使用您提到的C++库进行业务逻辑操作。这是否可行?

我们将不得不依赖J2ME平台来支持Symbian S40设备。对于S60和Symbian ^ 3设备,J2ME运行时施加了一些严重的限制,这些限制仅通过C ++ / Qt运行时可用,因此排除了该场景的可能性。 - Andre

0

虽然我没有比你更多的经验,但依据我的经验,Qt对于应用程序开发是不错的选择。它只需要编写一次代码就可以针对多个平台进行开发。Qt允许您只需编写一次高级应用程序和用户界面(UI),就可在桌面和嵌入式操作系统上部署它们,而无需重写源代码,从而节省时间和开发成本。谢谢。


0

在Symbian上可以使用STL实现。我曾经是一个团队的一部分,他们在S60v1到S60v5以及UIQ、S80和S90的Symbian设备上使用了带有STL的C++核心。同样的核心也用于Windows Mobile。我们使用STLPort进行STL实现,但我无法再次找到那个特定版本。我确信还有其他Symbian STL实现。

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


我被告知STLPort的质量不太好。其他STL端口通常不完整,除了EA的(但其许可限制了使用)。我还读到目前只能在Windows Phone 7上使用C#(除非您指的是旧的WinMo版本),我们可以使用与C#库相同的库吗?最后,我们已经为我们的BlackBerry应用程序编写了一些J2ME组件,这很有帮助。 - Andre
1
我从未使用过Windows Phone 7,我指的是旧版本的WinMo。但作为一个例子仍然有效,我们在Linux系统(主机和移动设备)上使用了相同的C++核心。您可能需要不同平台的不同版本的STL,但这主要是一个构建问题。我们没有遇到STLPort质量方面的问题,但今天应该有其他更现代的Symbian STL端口可用。确保您的S40 /黑莓j2me应用程序也能在S60上运行,可能比编写通用的C++核心要少费一些力气。 - Ola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接