使用原生API或J2ME开发黑莓应用程序?

17

我们即将构建一个黑莓应用程序,但是想询问一下,是使用J2ME(基于MIDlet)还是Blackberry本地(UIApplication)实现。

我了解到其中的一些权衡。如果我们想将应用程序移植到其他设备上,J2ME将更加灵活。 RIM对Blackberry本地提供更好的支持。

然而,我仍然缺乏有关用户界面方面的信息。 我们希望构建一个具有出色用户体验的应用程序,并且看起来像BB用户习惯的其他应用程序。 如果我们选择J2ME路线,我们是否能够做到这一点?

对于问题的主观性和技术性较低的部分,我们深表歉意。

8个回答

24
我尝试过两种方式 - 构建一个纯MIDP应用程序在BlackBerry和非BlackBerry平台上运行,以及构建一个单独的BlackBerry应用程序(通常使用大部分相同的业务逻辑和网络代码作为MIDP应用程序)。一定要选择黑莓本地化路线。
这全部是关于BB UI类。它们将为您提供(除其他外)响应不同类型菜单事件(轨迹球和菜单键),响应BB特定键代码的能力,如果您对Storm感兴趣,则利用方向传感器和触摸支持。此外,它们是一个更丰富的UI元素集合,可以与之一起工作。你可以在纯MIDP中构建出很多(但不是全部),但最终需要为每个平台自定义太多,最终并没有节省任何东西。从BB UI开始并进行自定义可以节省大量时间和精力。
即使在游戏应用程序或自定义绘制所有组件的应用程序中,您也可以更好地访问BlackBerry图形API,并通过使用BlackBerry本地应用程序路线获得更好的性能。而且你仍然有更好的输入事件详情。
最后,您可以使用BlackBerry本地应用程序执行一些很好的生命周期操作,例如推到后台或在系统启动时自动运行,这是您无法使用MIDlets执行的功能,这可能与您的应用有关。
同时考虑市场 - 如果您计划立即支持BlackBerry,然后再着手处理其他MIDP平台,那么在初始平台上尽可能发挥最佳作用通常是一个更好的计划。如果您没有在黑莓上成功,那么以后就没有什么理由去移植到MIDP了。

1
如果你在BlackBerry上没有成功,那么后来可能就没有太多理由去移植到MIDP上了。我没有想到这一点,但它确实很有道理。谢谢! - Lena Schimmel

10

黑莓平台对于编程来说非常困难。我采用原生路线,发现其文档很不完善,整体设计也是非常痛苦的。但如果您选择J2ME路线,那么您将失去某些功能(比如滚轮?)。这是一种权衡,您必须选择最适合您特定需求的那个。


3
我同意,我对黑莓API并不印象深刻。 - Andy White

4
自2002年Nextel / Motorola手机处于J2ME功能的前沿以来,我一直在使用J2ME。我主要处理非游戏应用程序。随着J2ME的发展和更多的手机符合JSR标准,我的应用程序继续平稳地移植。今年,我终于开始将它移植到Blackberry设备上。两天后,我的应用程序在Blackberry上完全正常运行。该应用程序纯粹是通用的J2ME,并使用许多JSR(位置、蓝牙、XML等)。强大的UI设计有所帮助。我扩展了一些UI类以支持QWERTY / SureType键盘。我使用了Blackberry设备上找到的各种本机应用程序(不是游戏),我还没有理由去尝试RIM API看看我会从中受益。其他程序员提出的上述论点进一步证明,除非您完全致力于Blackberry设备平台,否则很少有什么可以获得的好处。

2

在不知道应用程序范围的情况下,也就是说你将要针对哪些设备进行开发时,你需要考虑的另一件事是每个BlackBerry型号输入方式的差异日益扩大。例如,Curve和Bold等某些设备采用标准QWERTY键盘,而PEARL等其他设备则采用SureType键盘。还有Storm支持两种输入方式,具体取决于屏幕方向。此外,如果用户将其设置为这样使用,则必须将SureType键盘用作标准数字键盘。原生API支持所有这些功能,而标准MIDP则没有这种奢侈。

在设计用户体验时,另一个提示是,我会尝试使用几种不同的BlackBerry型号,并尝试使用一些默认的应用程序,因为有很多快捷方式是用户习惯使用的,而你可能甚至没有意识到它们的存在。例如,空格键可以向下翻页。这对于阅读文档非常重要,然而我有一个第三方RSS订阅阅读器,它没有这个功能,所以我总是先尝试使用它,然后才记得在这个应用程序中不存在该功能。这种小细节对于BlackBerry用户来说可能会产生巨大的影响。


1

有一种方法可以折中:您可以使用J2ME-Polish并在J2ME中进行本地编码。Polish将在某种程度上添加原生黑莓应用程序的外观和感觉。这样做的好处是可以将您的应用程序移植到其他J2ME手机,而不仅仅局限于黑莓。


0

J2ME开发简单。而且,BlackBerry API具有许多功能,您还可以使用简单签名的受限类。BlackBerry出售他们的签名证书,价格便宜,只需20美元。您可以使用此证书签名并使用所有受限类。在J2ME中,有时必须使用多个证书,甚至无法使用所有手机功能。因此,我的建议是使用BlackBerry本机API和一些J2ME包装器代码。这样,您可以像J2ME一样轻松编码,并可以使用BlackBerry本机API的所有功能。


0
根据我的经验,建议使用原生的BlackBerry UiApplication。这是最适合黑莓手机的应用程序,并为黑莓用户提供最佳的用户体验。如果使用J2ME,无法轻松达到这样的效果。

0

我同意Anthony的观点,对于BlackBerry应用程序,我会选择使用BlackBerry特定的API。J2ME并不具备可移植性,而BlackBerry对其专有API的支持要好得多。


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