最近我开始开发 J2ME 应用程序原型。我注意到开发一个漂亮的用户界面是多么困难。考虑在 J2ME 中开发一个应用程序,用于与 Web 服务交互预订航班。

预订航班的网站将很容易开发,具有漂亮的用户界面,并且可以通过手机上的浏览器访问。据我所知,并非所有手机都有浏览器,但所有新的和即将推出的手机都有浏览器并且也有大屏幕。

在 j2me 中开发这样一个需要与 web 服务交互才能工作的应用程序是个好主意吗?或者j2me只适合独立应用程序?

有帮助吗?

解决方案

J2ME的优点:

  • 可以访问电话资源,如文件系统、电话簿和 GPS。最后一点在地图应用中非常重要。
  • 您可以构建更丰富的用户界面。正如你所说,这可能很困难,但是有许多 GUI 库可以帮助你。相反,移动浏览器的 UI(不能依赖 CSS 和 javascript 工作)会很差。
  • 通信逻辑更加灵活。您可以加密/解密数据、压缩数据、使用 SOAP Web 服务。对于浏览器,最好的选择是开发 REST 服务。

J2ME的缺点:

  • Midlet 需要签名。这需要一定的成本,并且在某些情况下,即使是签名的应用程序也无法在特定手机上正常运行。
  • 开发一个在所有类型的手机上运行的 midlet 是一场噩梦。相反,设计良好的移动网络应用程序将在所有最新的手机中正确显示。
  • 您需要有一个渠道来分发您的应用程序。人们需要下载它并为所需的带宽付费。您需要照顾因应用程序出现问题而愤怒的客户。有了网站,事情就变得更容易了。
  • J2ME 应用程序不可避免地要与本机应用程序(iPhone、Windows Mobile、Symbian)进行比较。与这些相比,它们非常贫穷,许多人会发现为它们付费甚至使用它们是不合理的。

我的结论:如今,真正的智能手机越来越受欢迎,并赢得了越来越大的市场份额。在这种情况下,J2ME的优势并不能真正克服它的限制。我能想到的唯一例外是是否必须开发 GPS 应用程序。对于所有其他情况,移动网站是更好的主意。

其他提示

在之前的答案中,有很多误解和明显错误的陈述。

我建议你自己做研究。现在你 CAN 使用J2ME开发真正好看的应用程序而无需编写自己的GUI框架。真的看看LWUIT吧。例如,他们有一个虚拟键盘作为他们的触摸屏功能之一,你有像N97这样的设备,它本身没有虚拟键盘。 BTW使用LWUIT你有一个Blackberry和Android端口,如果有人关心的话。

此外,应用程序现在成为许多平台上的中心舞台,而不仅仅是iPhone。看看这个领域最近的发展,如OVI,RIM,三星,SE,橙色世界,他们都从应用商店开始。

“让人们在手机上使用网站比让他们下载应用程序更容易。”这只是一个没有证据的索赔。你不能这样说。这取决于很多其他因素。 - 为什么用户应该再次将您的移动网址输入相当小的屏幕?

无论如何,这个答案可能为时已晚,所以我不会写得更多。移动行业目前正在快速变化,但目前还没有替代J2ME进行跨平台开发。也许将来会有更好的浏览器和小部件技术。

简而言之,Google地图或gmail移动等应用程序可能不会使用Web服务与其服务器部分进行通信。 WebService有很多开销,特别是在考虑移动用户通常根据他们传输的数据量进行评级时。在客户端应用程序与其服务器部分之间执行通信的最佳方法是通过套接字连接使用二进制数据。

我个人认为制作一个可以在大量移动电话上运行的一致且可靠的J2ME应用程序真的很难。根据我的经验,如果这是一个严格的要求,我只会开发一个J2ME应用程序(而不是Web应用程序) - 例如,能够在不连接到网络的情况下查看您的预订。还有其他与J2ME应用程序相关的成本 - 必须下载应用程序,系统会询问用户是否允许应用程序在尝试时连接到网络(这种情况有例外情况,但我认为应用程序必须签名)由第三方公司 - 涉及更多$$$),您将必须维护在各种移动电话上运行的不同版本的应用程序(应用程序更复杂),等等......

以这种方式思考 - 如果您正在为计算机开发类似的东西,您会构建桌面应用程序还是Web应用程序?使用今天的手机(其中许多可以使用javascript访问全html网站 - 这意味着ajax),问题的提议是有效的。

我认为一个好的经验法则应该是:如果您想要通过移动网站完成的工作 - 请访问该网站。

恕我直言,只有当他们无法利用移动硬件时才能使用应用程序 - 例如位置,声音,视频,3D,图片等...

即使应用程序的开发成本微不足道(通常不是),您也必须提供一些非常出色的功能,让用户无法下载它。

(所有这一切对于J2ME / BREW都是如此。随着应用占据中心舞台,iPhone会有所不同)

有一点值得强调:部署MIDlet的唯一标准方法是通过OTA下载,因此您不会期望具有J2ME功能的手机没有网络浏览器。

像Webkit和Opera这样的移动网络浏览器比J2ME更快(至少在MIDP3.0开始出货之前,如果有的话)。

无论您选择哪个平台,都需要在许多设备上测试您的服务。我不认为从J2ME切换到webapp会在这方面产生巨大的差异,因为手机制造商不断改变进入手机固件的二进制文件。

让人们在手机上使用网站比下载应用程序更容易。除非在购买手机时已安装该应用程序,即。

您可能希望查看LWUIT以获得更好,更简单的J2ME GUI。

由于本地存储机制,J2ME将为航班预订服务完成的一件事是通过不需要持续的网络数据传输来节省电池寿命。

有很多很棒的j2me应用程序(需要)与webservices交谈。想想谷歌应用程序,如gmail mobile和移动地图。与通过手机浏览器使用服务相比,它们更快更容易使用。所以如果你能设计一款好的应用程序,那绝对值得。

编辑:此外,j2me应用程序可以实现Web应用程序无法提供的功能:与电话功能(地址簿,日历)集成,“拨打此号码”,位置api等。

我认为对于商业应用或更多面向文本/数据的东西,移动网络/ wap网站可能更容易维护,因为您不必处理将客户端更新推送到手机。

对于UI密集型应用程序(地图,游戏等),客户端应用程序可能是最佳选择,因此您可以在客户端处理更多的处理和渲染。

但这两个选项都很难,因为手机存在很多兼容性问题。通过缩小您希望为您的应用支持的手机类型,您可能会得到最好的服务。如果您认为大部分客户都是iPhone或Android手机,那么您可以定位这些平台(使用客户端应用程序或网络应用程序)并完全避免使用旧版j2me。

我讨厌手机上的WebApps。它们很慢,不能在半连接环境中工作。

J2ME应用程序可以执行本地备份,蓝牙备份,2个手机之间的蓝牙数据共享以及更好的响应式UI。然而,这需要金钱,技能,时间等。

我对MIDP的主要抱怨是推动软件更新和实时混合。从技术上讲,这些都可以在MIDP的范围内进行,但是轮子上的暴徒不是很有创意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top