我想开发一个能够访问其运行的移动设备的所有功能的移动应用程序(摄像头,文件,电话和网络连接)。我打算构建一系列应用程序,每个应用程序都具有要执行的特定功能,而不是具有大型功能集的单个应用程序。我的编程背景是C,C#和Web应用程序。
用于执行此操作的最佳工具集是什么?我已经看过使用NetBeansIDE使用LWUIT创建Java ME应用程序 - 这看起来很有希望,但有什么警告呢?
我希望以最大的移动设备为目标。
答案 0 :(得分:5)
J2ME是接触群众,消费者或商业市场的途径。从消费者的角度来看,世界上大多数手机都支持J2ME。从商业角度来看,世界上大多数智能手机都支持J2ME。
诺基亚在全球智能手机市场(以及整个市场)拥有40%的份额。接下来是黑莓,占13%的份额。两者都在其设备上具有J2ME的标准实现(尽管Blackberry也具有Java的专有版本)。最重要的是,大多数运行Windows Mobile的设备都带有JVM(我最近开发了一款最初针对索尼爱立信W810i的游戏,它在我的HTC Tilt的JVM上运行得非常完美)。再加上Android有一个Java SDK,你真正错过的唯一一个部分是BREW手机和iPhone。
我不是J2ME的支持者。我只知道在过去的3年中,其他所有移动平台都已经从我的生活中消失了,因为这对于公司来说仅仅是针对该行业的J2ME细分市场具有经济意义。
答案 1 :(得分: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/
祝你好运答案 2 :(得分:1)
如果您的主要目标是进入消费者市场,那么Java 2 Micro Edition(J2ME)可能是您最好的选择。所有流行的手机(来自诺基亚,索尼爱立信,三星)都安装了Java虚拟机。例如,如果你看看谷歌,他们正在用Java开发他们所有的移动应用程序(如Gmail和谷歌地图)。
如果您的目标是商业客户,那么Microsoft .NET Compact Framework就是我认为的方式。 Windows Mobile操作系统在商业市场中占据强势地位,主要是因为Outlook Mobile及其与Exchange的集成。
答案 3 :(得分:-1)
我恭敬地不同意福斯塔。
如果你想接触群众,网络是你最好的选择。编写一个可以在数百万台设备上运行的简单Web应用程序要容易得多。
最重要的是,您可以轻松更新您的应用程序,并且每天通过网络改善用户体验。