使用SDK开发手机(Java)还是不开发?

时间:2010-02-02 03:54:40

标签: java java-me mobile sdk nokia

最近我必须使用Java开发手机,我计划在以下品牌上进行开发:

诺基亚

三星

索尼爱立信

摩托罗拉

LG

我浏览了每家公司的“开发者网站”,看起来他们都为J2ME开发提供了自己的SDK。

我对这个领域很陌生,我有几个问题:

  1. 由于它们都支持Java平台,为什么我们需要额外的Java SDK?

  2. 我可以从SDK中受益?

  3. 是什么决定我是否应该使用SDK?

6 个答案:

答案 0 :(得分:7)

这完全取决于您希望开发的应用程序的复杂程度。

开发基本应用程序以在许多不同的手机上运行是可行的,但复杂性将随着您添加的每个高级功能呈指数级增长,特别是如果您想要定位现有的,旧的和即将推出的设备。

您还需要考虑的是,每个制造商都可以支持多种操作系统和平台。

诺基亚推出Series40(第3版和第5版),Series60(第2版,第3版和第5版),Series80。

三星至少有两个主要版本的自己的平台和最后两个版本的Series60

索尼爱立信拥有3个主要版本的JP8平台(以及JP7),Series60第5版,UIQ 2.x和UIQ 3.x

Series80,Series60,UIQ 2.x和UIQ 3.x基于Symbian操作系统。不同版本的Symbian OS使用了不同的JVM,有几家公司提供了JSR实现。

摩托罗拉至少有两个主要版本的自己的平台和几个UIQ设备

  

1 - 由于它们都支持Java平台,为什么我们需要额外的Java SDK?

J2ME的主要问题是碎片化。出于各种原因(无论是好的还是坏的,无论是技术还是商业),“一次编写,随处运行”的Java承诺在移动行业中被认为完全没有实现。

如果您希望同一代码同时在许多平台上运行,则需要以特定于平台的方式对许多功能进行编码。

许多J2ME平台还添加了非标准API,属性,配置,“错误”......

最重要的是,制造商SDK应该允许通过USB进行设备上调试或MIDlet部署。它们提供了基本或扩展的工具,可以帮助进行设备上的测试,因为这是一个通常缺乏通用WTK的领域。

  

2 - 我可以从SDK中获益吗?

很可能,是的。 好的,所以,他们中的大多数只能在Windows桌面计算机上运行,​​但SDK本身应该是免费的。

  

3 - 决定我是否应该使用SDK的原因是什么?

从WTK开始。当您意识到自己正在尝试做一些特定于手机制造商的事情时,请获取相应的SDK。

一个例子:WTK PDAPDemo示例应用程序包含一个基本的文件系统浏览器。它在不同的平台上显示出截然不同的结果。

正如Pavel Alexeev所建议的那样,假设您拥有适当的测试预算,DeviceAnywhere是一个很棒的工具。诺基亚也提供类似的东西,但显然仅限于诺基亚手机。

答案 1 :(得分:1)

仅当您要使用特定于供应商的API时,才能从特定于供应商的SDK中获益。在大多数情况下,Sun WTK就足够了。

至于测试目的,我不建议依赖模拟器。您最好尝试在设备上进行测试。诺基亚和三星为最新设备提供移除设备访问权限。您也可以尝试deviceanywhere

答案 2 :(得分:0)

我会使用常规的旧版本... Oracle Java WTK进行大部分开发,然后如果您需要进行一些测试,请从这些公司获取仿真器/ SDK。除此之外,我主要是避开它们。

答案 3 :(得分:0)

内置相机功能通常在不同品牌的手机之间有所不同,并且在尝试执行比拍摄简单快照更高级的任何操作时,提供的API非常有用。例如,SonyEricsson手机将允许您通过VideoCamera将摄像机直接显示到画布,该画布速度非常快,但不允许您控制馈送到屏幕的频率。为了在视频源之上绘制图形而不会过度闪烁,您需要将OVERLAY标志(1<< 8)添加到VideoCamera的initDisplayMode()调用中,并非所有品牌都支持附加标志。

答案 4 :(得分:0)

对于.NET人员 - 有一个 Ubiq Mobile框架。 Ubiq Mobile应用程序适用于Android,iOS,Windows Phone 和基于Java的手机和平板电脑。这是.NET与基于云的架构的快速跨平台开发。入门文章:How to create simple UbiqMobile applicationvideo

答案 5 :(得分:-1)

我的观点是“QuickRecipesOnSymbianOS”是正确的。这是非常简单,简单和技术性的答案。