这完全取决于您要开发的应用程序有多复杂。
开发一个可在多种不同手机上运行的基本应用程序是可行的,但复杂性会随着您添加的每项高级功能而呈指数级增加,特别是如果您想针对现有的、旧的和即将推出的设备。
您还需要考虑的是,每个制造商都可以支持多个操作系统和平台。
诺基亚有 Series40(第 3 和第 5 版)、Series60(第 2、第 3 和第 5 版)、Series80。
三星自有平台至少有 2 个主要版本和 Series60 的最后 2 个版本
索尼爱立信有 3 个主要版本的 JP8 平台(以及 JP7),Series60 第 5 版、UIQ 2.x 和 UIQ 3.x
Series80、Series60、UIQ 2.x 和 UIQ 3.x 基于 Symbian 操作系统。不同版本的 Symbian OS 使用了不同的 JVM,并且有几家公司贡献了 JSR 实现。
摩托罗拉至少有自己平台的 2 个主要版本和几个 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 是一个很棒的工具,前提是您有适当的测试预算。诺基亚也提供类似的产品,但显然仅限于诺基亚手机。