J2ME app与手机上的浏览器相同

时间:2009-03-04 04:42:36

标签: java-me mobile

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

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

在j2me中开发这样一个应用程序是否是一个好主意,需要与webservice交谈以使其工作?或者j2me仅适用于独立应用程序?

8 个答案:

答案 0 :(得分:3)

J2ME的优点:

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

J2ME的缺点:

  • 需要签署Midlet。这有一些成本,甚至签名的应用程序也无法在特定手机中正常运行。
  • 开发midlet以在所有类型的手机中运行是一场噩梦。相反,精心设计的移动网络应用程序将在所有最近的手机中正确显示。
  • 您需要有一个分发应用程序的渠道。人们需要下载它并获得所需带宽的费用。您需要关心有应用程序问题的愤怒客户。通过网站,事情变得更容易。
  • J2ME应用程序不可避免地与本机应用程序(iPhone,Windows Mobile,Symbian)进行比较。与这些相比,他们非常贫穷,许多人会发现为他们付钱甚至使用它们都是不合理的。

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

答案 1 :(得分:3)

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

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

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

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

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:2)

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

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

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

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

答案 4 :(得分:2)

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

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

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

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

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

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

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

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

答案 7 :(得分:0)

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

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

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