诺基亚
三星
索尼爱立信
摩托罗拉
LG
我浏览了每家公司的“开发者网站”,看起来他们都为J2ME开发提供了自己的SDK.
我对这个领域很陌生,我有几个问题:
>由于它们都支持Java平台,为什么我们需要额外的Java SDK?
>我可以从SDK中获益吗?
>是什么决定我是否应该使用SDK?
解决方法
开发一个基本应用程序以在许多不同的手机上运行是可行的,但复杂性将随着您添加的每个高级功能呈指数级增长,特别是如果您想要定位现有的,旧的和即将推出的设备.
您还需要考虑的是,每个制造商都可以支持多种操作系统和平台.
诺基亚拥有Series40(第3和第5版),Series60(第2版,第3版和第5版),Series80.
三星拥有自己平台的至少2个主要版本和Series60的最后2个版本
SonyEricsson有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 – Since they all support Java platform,why do we need additional Java SDKs?
J2ME的主要问题是碎片化.出于各种原因(无论是好的还是坏的,无论是技术的还是商业的),“一次编写,随处运行”的Java承诺在移动行业中被认为完全没有实现.
如果您希望同一代码同时在许多平台上运行,则需要以特定于平台的方式对许多功能进行编码.
许多J2ME平台还添加了非标准API,属性,配置,“bug”……
最重要的是,制造商SDK应该允许通过USB进行设备上调试或MIDlet部署.它们提供了基本或扩展的工具,可以帮助进行设备上的测试,因为这是一个通常缺乏通用WTK的领域.
2 – What can I benefit from the SDKs?
很可能,是的.
好的,所以,他们中的大多数只能在Windows桌面计算机上运行,但SDK本身应该是免费的.
3 – What determines whether I should use the SDKs or not?
从WTK开始.当您意识到您正在尝试做一些特定于手机制造商的事情时,请获取相应的SDK.
一个示例:WTK PDAPDemo示例应用程序包含一个基本的文件系统浏览器.它在不同平台上显示出截然不同的结果.
正如Pavel Alexeev所建议的那样,DeviceAnywhere是一个很好的工具,假设你有一个合适的测试预算.诺基亚也提供类似的东西,但显然仅限于诺基亚手机.