使用本机API或J2ME开发黑莓应用程序?

使用本机API或J2ME开发黑莓应用程序?,api,blackberry,java-me,Api,Blackberry,Java Me,我们将要构建一个Blackberry应用程序,但希望您能提供一些关于是使用J2ME(基于MIDlet)还是Blackberry原生(UIApplication)实现的信息 我理解其中的一些权衡。如果我们想将应用程序移植到其他设备上,J2ME将更加灵活。RIM对Blackberry native有更好的支持 不过,我仍然缺乏信息的地方是UI方面。我们希望构建一个具有良好用户体验的应用程序,一个看起来像BB用户习惯的其他应用程序的应用程序。如果我们走J2ME路线,我们能做到这一点吗 我为这个问题的主

我们将要构建一个Blackberry应用程序,但希望您能提供一些关于是使用J2ME(基于MIDlet)还是Blackberry原生(UIApplication)实现的信息

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

不过,我仍然缺乏信息的地方是UI方面。我们希望构建一个具有良好用户体验的应用程序,一个看起来像BB用户习惯的其他应用程序的应用程序。如果我们走J2ME路线,我们能做到这一点吗


我为这个问题的主观性和较少的技术性道歉。

我已经尝试了两种方法——构建一个纯MIDP应用程序在黑莓和非黑莓平台上运行,以及构建一个单独的黑莓应用程序(通常使用与MIDP应用程序相同的业务逻辑和网络代码)。一定要走黑莓原生路线

这都是关于BBUI类的。如果您对风暴感兴趣,它们将使您能够(除其他外)响应不同类型的菜单事件(轨迹球和菜单键),响应BB特定的键代码,利用方向传感器和触摸支持。此外,它们是一组更丰富的UI元素。您可以构建很多(但不是全部)他们在纯MIDP中所做的工作,但最终会为每个平台定制太多,以至于最终不会保存任何内容。从BB UI开始,定制可以节省大量时间和精力

即使是在游戏应用程序中,或者对于自定义绘制所有组件的应用程序,您也可以更好地访问BlackBerry图形API,并通过BlackBerry本机应用程序获得更好的性能。而且,您仍然可以更好地了解输入事件的详细信息

最后,你可以用黑莓原生应用程序做一些很好的生命周期方面的事情,比如推到后台,或者在系统启动时自动运行,这是你不能用MIDlet做的,这可能会引起你的兴趣,这取决于你的应用程序


还要考虑一下市场——如果你打算马上支持黑莓,然后可能是其他MIDP平台,那么在最初的平台上尽可能地执行最好的计划通常是更好的。如果你不能首先在BlackBerry上取得成功,那么以后可能没有太多理由移植到MIDP。

在不知道你的应用程序范围的情况下,这意味着你将针对哪些设备,你需要考虑的另一件事是,每个BlackBerry型号的输入差异不断扩大。有些设备,如Curve和Bold,是标准的QWERTY焊盘,而其他设备,如PEARL,则有SureType焊盘。然后是风暴,根据屏幕的方向,风暴支持这两者。此外,如果用户将SureType键盘设置为标准数字键盘,则需要将其用作标准数字键盘。本机API支持所有这些功能,而标准MIDP则不支持这些功能


在设计用户体验时的另一个技巧是,我会尝试几种不同的黑莓手机型号,并尝试一些标准应用程序,因为有很多用户习惯使用的快捷方式,而你可能甚至意识不到它们的存在。例如,空格键向下翻页。这对于阅读文档来说是巨大的,但是我有一个第三方RSS提要阅读器,它没有这个功能,我总是先尝试使用它,然后再记住它在这个应用程序中不存在。这种小细节会对黑莓用户产生巨大的影响。

我同意安东尼的观点,我会选择黑莓应用程序的特定API。J2ME是不可移植的,BlackBerry对其专有API有更好的支持。

BlackBerry是一个很难编程的平台。我走的是本地路线,发现它的文档记录非常糟糕,总体而言,这只是一个糟糕的设计。我确实觉得这是必要的,因为如果您选择J2ME路线,您将失去某些功能(滚轮?)的能力。这是一个折衷方案,您必须选择一个更适合您特定需求的应用程序。

根据我的经验:坚持使用本机黑莓应用程序。它是黑莓的最佳选择,为黑莓用户提供最佳的用户体验。你不能轻易地用J2ME复制它。

我从2002年开始使用J2ME,当时Nextel/Motorola手机处于J2ME功能的前沿。我主要处理非游戏应用程序。今天,随着J2ME的发展和越来越多符合JSRs的手机,我的应用程序继续顺利移植。今年我终于有时间把它转移到黑莓手机上。两天后,我的应用程序在黑莓手机上完全正常运行。该应用程序是纯粹的通用J2ME,并使用了许多JSR(位置、蓝牙、xml等)。强大的用户界面设计会有所帮助。我扩展了一些UI类以支持QWERTY/SureType键盘。我使用了黑莓设备(不是游戏)上的各种本机应用程序,我还没有理由冒险使用RIMAPI,看看我能从中获得什么好处。上面其他程序员同事所表达的观点进一步证明,除非你纯粹致力于黑莓设备平台,否则几乎没有什么好处

J2ME易于开发。而且,BlackBerryAPI有很多特性,您还可以使用带有简单签名的受限类。黑莓出售他们的签名证书,而且价格便宜。20$. 您可以使用此证书来签署和使用所有受限类。在J2ME中,有时必须使用多个证书,甚至不能使用所有电话功能。所以,我的建议是,使用BlackBerry原生API和一些J2ME包装器代码。因此,您可以轻松地编写J2ME代码,并可以使用BlackBerry原生API的所有功能。

有一种方法介于两者之间:您可以在J2M中原生地使用和编写代码