多平台移动应用程序

3
我想开发一个移动应用程序,希望它能在Android、Windows Mobile、Symbian和Blackberry上运行。哪种方法最好呢?
我在这里阅读到:链接
“您可以尝试使用自己的接口来包装您使用的平台特定API(iPhone SDK等)的部分。通过这样做,您实际上隐藏了平台特定库,并使您的设计和代码更易于处理平台之间的差异。”
我希望有一个框架可以为我完成这个过程,但是似乎并不存在或者我没有找到。我觉得这样的东西会使我的代码难以维护,也许最好为每个平台都有一个版本。
有经验的人吗?
其他有用的链接:
6个回答

4

Java不算吗(以各种形式)?

在一个一致的语言/运行平台中管理API差异应该更加简单,可以在代码中评估功能...并且在构建时进行代码配置。

尽管我不喜欢Java,但它相当普及。至于iPhone...除了被过度炒作和锁定外...你可以在越狱的手机上运行Java...

苹果的开放友好外观怎么了?内心的愤世嫉俗者知道答案;)


我的问题不是关于语言,而是关于如何管理特定于平台的API。 - Macarse
API 的依赖于运行时环境,在大多数移动应用程序中,这意味着语言 ... 进而决定您如何管理 API 以及如何部署应用程序(您是否需要为每个设备重写它以管理 API 差异)。 - Aiden Bell
不是另一种语言,而是例如,我正在开发一个应用程序,您可以按下按钮并获得伪随机数。为Android编码的应用程序应与为Symbian编码的应用程序不同。那么,管理这些差异的最佳方法是什么? - Macarse
使用适用于所有操作系统的本地平台,以便在部署时维护一致的代码/配置,或使用固定的API来评估设备功能...例如Java。 - Aiden Bell

3
你可能需要了解一下PhoneGap (http://phonegap.com/)。根据他们自己的描述页面:

PhoneGap是一个开源的开发工具,可用于使用JavaScript快速构建易于使用的移动应用程序。

如果你是一个Web开发人员,想要在iPhone、Android和Blackberry SDK的核心功能中仍然利用HTML和JavaScript构建移动应用程序,那么PhoneGap就是适合你的。

除了使用JavaScript之外,它还支持JavaScript访问手机的本地控件和功能(例如GPS、加速度计等...)。

+1...我认为我们应该将ECMAScript作为很多东西的标准。非常好的语言。 - Aiden Bell
1
我用过PhoneGap。它相当不错。请注意,偶尔会有PhoneGap应用被苹果拒绝的情况。http://groups.google.com/group/phonegap/browse_thread/thread/8457987d1d07aede# - Nosredna
@Nosredna:好信息。我发现了这个:http://nachbaur.com/blog/updates-on-apple-phonegap - Macarse
有人可以帮我检查并更新一下吗?这是关于如何将Cueme应用程序部署到所有移动平台的问题。 - Pyare

2

据我所知,确实没有什么万能的解决方案。即使在黑莓平台上,也有许多不同的设备,具有不同的功能、屏幕分辨率等等。而这只是来自一个单一制造商的情况;Symbian和Windows Mobile可能更糟糕。

答案很可能是,如果你真的想减少代码分叉并最大化你的受众,那么你应该专注于相对新的和一致的平台(只有非常少量的并且几乎都是类似的设备),比如Android和iPhone OS。

当iPhone OS有九种不同的设备和两打Android平台时,我的建议几乎肯定会改变。


1

或者调查Movilizer。支持iOS、Android、WinPhone、WinMobile、桌面PC、嵌入式设备等多种平台。采用一次设计,到处运行的方法。

http://www.movilizer.com


1
首先要问自己的问题是是否需要本地应用程序,如果不需要,则设计移动网站解决方案应该能够提供最广泛的跨平台兼容性,如果无法实现,则可以制作 iPhone 和 J2ME 解决方案(J2ME 可以相对容易地移植到 Android 平台),以覆盖尽可能多的用户。

0

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