17

我们将要构建一个 Blackberry 应用程序,但希望能就是否使用 J2ME(基于 MIDlet)或 Blackberry 本机(UIApplication)来实现一些输入。

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

不过,我仍然缺乏信息的地方是 UI 方面。我们希望构建一款用户体验极佳的应用,并且看起来像 BB 用户习惯的其他应用。如果我们走 J2ME 路线,我们可以这样做吗?

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

4

8 回答 8

24

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

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

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

最后,您可以使用 BlackBerry 原生应用程序执行一些不错的生命周期操作,例如推送到后台,或在系统启动时自动运行,而您无法使用 MIDlet 执行这些操作,这可能会根据您的应用程序感兴趣。

还要考虑市场——如果您计划立即支持 BlackBerry,然后可能会支持其他 MIDP 平台,那么在初始平台上尽可能地执行通常是一个更好的计划。如果您没有先在 BlackBerry 上取得成功,以后可能没有太多理由移植到 MIDP。

于 2009-01-14T20:18:02.840 回答
10

黑莓是一个很难编程的平台。我走的是原生路线,发现它的文档记录很差,总的来说只是一个糟糕的设计。我确实觉得这是必要的,因为如果您走 J2ME 路线,您将失去某些功能(滚轮?)的能力。这是一种权衡,您必须选择更适合您的特定需求的那个。

于 2009-03-08T22:04:56.527 回答
4

我从 2002 年开始使用 J2ME,当时 Nextel/摩托罗拉手机处于 J2ME 功能的最前沿。我主要处理非游戏应用程序。今天,随着 J2ME 的发展和更多符合 JSR 的手机,我的应用程序继续顺利移植。今年我终于把它移到了黑莓设备上。两天后,我的应用程序在 Blackberry 上完全正常运行。该应用程序是纯粹的通用 J2ME 并使用许多 JSR(位置、蓝牙、xml 等)。强大的 UI 设计会有所帮助。我扩展了一些 UI 类以支持 QWERTY/SureType 键盘。我已经使用了在黑莓设备(不是游戏)上发现的各种本地应用程序,我还没有证明有任何理由冒险使用 RIM API 来看看我会从中受益。

于 2009-05-03T04:18:12.940 回答
2

在不知道您的应用程序的范围(即您将针对哪些设备)的情况下,您需要考虑的另一件事是每个 BlackBerry 型号的输入差异不断扩大。某些设备(例如 Curve 和 Bold)是标准 QWERTY 垫,而其他设备(例如 PEARL)具有 SureType 垫。然后是根据屏幕方向支持两者的 Storm。此外,如果用户以这种方式设置 SureType 键盘,则需要将其用作标准数字键盘。原生 API 支持所有这些,而标准 MIDP 则无法提供这些功能。

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

于 2009-01-14T22:34:30.740 回答
1

有一种介于两者之间的方法:您可以在 J2ME 中使用J2ME-Polish和本机代码。波兰语将在一定程度上增加原生 BlackBerry 应用程序的外观和感觉。这具有将您的应用程序移植到其他 J2ME 手机的优势,而不仅限于 BlackBerry。

于 2010-10-26T10:25:16.010 回答
0

我同意 Anthony 的观点,我会为 BlackBerry 应用程序使用 BlackBerry 特定的 API。J2ME 只是不可移植,而 BlackBerry 对其专有 API 的支持要好得多。

于 2009-03-08T22:02:09.607 回答
0

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

于 2009-04-30T15:57:56.620 回答
0

J2ME 易于开发。而且,BlackBerry API 具有许多功能,您还可以通过简单的签名使用受限类。黑莓出售他们的签名证书,而且很便宜。20 美元。您可以使用此证书来签署和使用所有受限类。在 J2ME 中,有时您必须使用多个证书,即使您不能使用所有电话功能。所以,我的建议是,使用 BlackBerry 原生 API 和一些 J2ME Wrapper Codes。因此,您可以像 J2ME 一样轻松编写代码,并且可以使用 BlackBerry 本机 API 的所有功能。

于 2009-09-02T14:40:43.143 回答