最近我必须使用Java开发手机,我计划在以下品牌上进行开发:
诺基亚
三星
索尼爱立信
摩托罗拉
LG
我浏览了每家公司的“开发者网站”,看起来他们都为J2ME开发提供了自己的SDK。
我对这个领域很陌生,我有几个问题:
由于它们都支持Java平台,为什么我们需要额外的Java SDK?
我可以从SDK中受益?
是什么决定我是否应该使用SDK?
答案 0 :(得分:7)
这完全取决于您希望开发的应用程序的复杂程度。
开发基本应用程序以在许多不同的手机上运行是可行的,但复杂性将随着您添加的每个高级功能呈指数级增长,特别是如果您想要定位现有的,旧的和即将推出的设备。
您还需要考虑的是,每个制造商都可以支持多种操作系统和平台。
诺基亚推出Series40(第3版和第5版),Series60(第2版,第3版和第5版),Series80。
三星至少有两个主要版本的自己的平台和最后两个版本的Series60
索尼爱立信拥有3个主要版本的JP8平台(以及JP7),Series60第5版,UIQ 2.x和UIQ 3.xSeries80,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 application与video。
答案 5 :(得分:-1)
我的观点是“QuickRecipesOnSymbianOS”是正确的。这是非常简单,简单和技术性的答案。