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

7

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

Nokia

Samsung

SonyEricsson

Motorola

LG

我浏览了每个公司的"开发者网站",看起来它们都为J2ME开发提供了自己的SDK。

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

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

  2. 我可以从这些SDK中获得什么好处?

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

6个回答

7
一切取决于您要开发的应用程序的复杂性。开发基本应用程序以在许多不同的手机上运行是可行的,但是随着您添加每个高级功能,特别是如果您想针对现有,旧的和即将推出的设备,则复杂性会呈指数增长。您还需要考虑的是,每个制造商可以支持几个操作系统和平台。例如,Nokia有Series40(第3版和第5版),Series60(第2版,第3版和第5版),Series80。Samsung至少有自己平台的2个主要版本和最后2个版本的Series60。SonyEricsson有他们的JP8平台的3个主要版本(还有JP7),Series60第5版,UIQ 2.x和UIQ 3.x。Series80,Series60,UIQ 2.x和UIQ 3.x都基于Symbian操作系统。不同版本的Symbian OS使用了不同的JVM,并且几家公司提供了JSR实现。Motorola至少有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是一个很棒的工具,假设您有适当的测试预算。Nokia也提供类似的东西,但显然仅限于Nokia手机。

1

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

至于测试目的,我不建议依赖模拟器。您最好尝试设备上的测试。诺基亚和三星为最近的设备提供了远程设备访问。您还可以尝试deviceanywhere


0

我会使用标准的Sun..err..Oracle Java WTK进行大部分开发工作,如果需要进行一些测试,则可以从这些公司获取模拟器/SDK。除此之外,我基本上会避免使用它们。


0

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


0
对于 .NET 开发者 - 有一个名为 Ubiq Mobile 的框架。Ubiq Mobile 应用程序可以在 Android、iOS、Windows Phone 和基于 Java 的手机和平板电脑上运行。这是一种快速的跨平台开发方式,采用 .NET 和云架构。入门文章:如何创建简单的 UbiqMobile 应用程序,附带 视频

-1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接