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

Posted

技术标签:

【中文标题】使用本机 API 或 J2ME 开发黑莓应用程序?【英文标题】:Develop Blackberry apps using native API or J2ME? 【发布时间】:2010-10-01 11:03:26 【问题描述】:

我们即将构建一个 Blackberry 应用程序,但希望了解是使用 J2ME(基于 MIDlet)还是 Blackberry 本机(UIApplication)来实现。

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

最后,您可以使用 BlackBerry 原生应用程序执行一些不错的生命周期操作,例如推送到后台,或在系统启动时自动运行,而您无法使用 MIDlet 执行这些操作,具体取决于您的应用程序。

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

【讨论】:

"如果您没有先在 BlackBerry 上取得成功,以后可能没有太多理由移植到 MIDP。" - 我没有想到这一点,但这很有意义。谢谢!【参考方案2】:

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

【讨论】:

我同意,我对 BlackBerry API 没有印象【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

【讨论】:

以上是关于使用本机 API 或 J2ME 开发黑莓应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

从黑莓中动态生成的 basicEditField 获取价值

如何在黑莓应用程序中使用软键?

在黑莓原生 sdk 10.2 中构建应用程序

如何在黑莓中运行工作灯的本机代码[关闭]

黑莓推出原生网络浏览器

检索黑莓的电池放电率