4

我想开发一个移动应用程序,它能够访问它运行的移动设备的所有功能(相机、文件、电话和网络连接)。我打算构建一系列应用程序,每个应用程序都有一个特定的功能要执行,而不是一个具有大量功能集的单个应用程序。我的编程背景是 C、C# 和 Web 应用程序。

用于执行此操作的最佳工具集是什么?我已经研究过使用 NetBeansIDE 创建一个使用 LWUIT 的 Java ME 应用程序——这看起来很有希望,但是有什么警告呢?

我想瞄准尽可能多的移动设备。

4

4 回答 4

5

J2ME 是面向大众的方式,无论是在消费者市场还是在商业市场。从消费者的角度来看,世界上大多数手机都支持 J2ME。从商业角度来看,世界上大多数智能手机都支持 J2ME。

诺基亚拥有全球智能手机市场(以及整个市场)40% 的份额。紧随其后的是黑莓,占有 13% 的份额。两者在他们的设备上都有 J2ME 的标准实现(尽管 Blackberry 也有 Java 的专有版本)。最重要的是,大多数运行 Windows Mobile 的设备也带有 JVM(我最近开发了一款游戏,最初针对的是索尼爱立信 W810i,它在我的 HTC Tilt 的 JVM 上完美运行)。再加上 Android 有一个 Java SDK 的事实,而您真正错过的唯一部分是仅限 BREW 的手机和 iPhone。

我不是 J2ME 的大力支持者。我只知道在过去 3 年中,所有其他移动平台都从我的生活中消失了,因为公司只针对行业的 J2ME 部分在财务上是有意义的。

于 2008-10-16T15:19:20.170 回答
3

您面临着移动开发的常见主要问题:仅使用一种编程语言针对尽可能多的手机意味着使用 J2ME,这并不能完全让您访问手机的所有功能。

大多数开放式手机都将支持 J2ME,但不同的手机制造商以不同的方式实现它,而且整体上的碎片化是巨大的。不幸的是,大多数开放式手机(可以安装第三方应用程序的手机)只允许您使用 J2ME 进行开发

唯一的好消息是,您只打算编写小型应用程序将大大缓解碎片问题。

J2ME 在文件系统访问方面也有很大的限制,完全缺乏电话 API,与系统应用程序管理的交互非常差......

为了获得全部功能,您始终需要使用您所针对的开放平台的本机技术,无论是 Android、iPhone、Symbian OS、Brew、Windows Mobile 或 Palm OS 手机的几种变体。它们中的每一个都有自己的原生技术。

用多种不同的语言多次编写您的应用程序,代价高昂,既需要大量目标手机,又需要访问每款手机的全部功能。

我本人是一名 Symbian/J2ME 资深人士,鉴于您所陈述的背景和目标,我怀疑您正在尝试学习移动技术。因此,我会厚颜无耻地插入我的书,这是对 Symbian 开发生态系统的介绍:

http://www.amazon.com/Quick-Recipes-Symbian-Smartphone-Development/dp/0470997834/

祝你好运

于 2008-10-21T22:08:10.043 回答
1

如果您的主要目标是进入消费市场,Java 2 Micro Edition (J2ME) 可能是您最好的选择。所有流行的手机(来自诺基亚、索尼爱立信、三星)都安装了 Java 虚拟机。例如,如果你看看 Google,他们正在用 Java 开发他们所有的移动应用程序(如 Gmail 和 Google 地图)。

如果您的目标是商业客户,我认为 Microsoft .NET Compact Framework 是您的最佳选择。Windows Mobile 操作系统在商业市场中占有重要地位,主要是因为 Outlook Mobile 及其与 Exchange 的集成。

于 2008-10-16T08:00:08.993 回答
-1

我恭敬地不同意福斯塔。

如果你想接触大众,网络是你最好的选择。编写一个可以在数百万台设备上运行的简单 Web 应用程序要容易得多。

最好的一点是您可以轻松地更新您的应用程序并每天通过 Web 改善用户体验

于 2008-11-08T23:01:40.107 回答