同时编写 iPhone、BlackBerry 和 Android 手机的技术? [关闭]

Posted

技术标签:

【中文标题】同时编写 iPhone、BlackBerry 和 Android 手机的技术? [关闭]【英文标题】:Technology to write iPhone, BlackBerry and Android phone at the same time? [closed] 【发布时间】:2009-05-04 17:36:15 【问题描述】:

是否有编写在 iPhone、BlackBerry 和 android 上运行的应用程序的策略或至少是最佳实践?

我对 BB 和 Android 的开发环境一无所知,但我认为它们都支持 Java 应用程序。

我知道 iPhone 需要 ObjectiveC 部分(以及全新的 UI)。

有人做过吗?

【问题讨论】:

您可以/应该将 iPad 和基于 Android 的平板电脑包括在其中吗? 也是低级?然后在这里:***.com/questions/5393844/… 重复***.com/questions/51988/… 我已经做到了,你会发现即使是最好的(我不会说名字),也有局限性。它们适用于简单的应用程序,但如果您想要一些华丽的真正原生应用程序,那么您仍然需要为每个平台开发大部分代码,然后重用其余代码。 【参考方案1】:

您可能想查看http://phonegap.com/

【讨论】:

我用过几次了。虽然它显然不如编写原生应用程序功能全面,但它非常适合小型跨设备应用程序 刚看完电影。完美的。谢谢! 您知道,在撰写本文时,phonegap 框架并未在平台之间提供统一的持久存储机制。对于我们这些试图编写跨平台应用程序的人来说,这一直是痛苦的主要来源。平台之间还有许多其他差异,因此,当您开始项目时,您需要齐心协力确定哪些技术可供您使用。 这个答案是否也适用于 iPad?【参考方案2】:

一种适用于某些类型的应用(例如参考应用)的技术: 使用 html/CSS/javascript 并编写紧凑型客户端,使用 平台的 HTML 查看器对象 来读取本地嵌入的 Web 内容。

编写可在 BlackBerry 和 Windows Mobile 上运行的跨平台应用程序的一种技术是全部用 HTML 编写。我必须使用在 BlackBerry Browser 和 Pocket Internet Explorer 上都可以使用的 HTML 和 CSS 子集。我也使用了少量的 JavaScript。

我编写了非常小的查看器,它们使用 jar:// (BlackBerry) 和 res:// (Windows Mobile) URL 运行内部存储的 HTML 和图像。通过使用自定义版本的浏览器字段和 . Windows Mobile 也一样,我可以在我的 Windows Mobile 应用程序中使用 Pocket Internet Explorer 作为嵌入式 ActiveX。

注意——对于 BlackBerry,我必须支持运行 OS 4.2 的旧设备。为此,我回收了很多 RIM 代码示例,例如 SecondaryResourceFetchThread.java 以提取嵌入在应用程序中的图像,并通过实现 HttpConnection 的自定义连接对象传递给它,该对象我设计用于在内部处理 jar:// URL在我的 BlackBerry 应用程序中嵌入 HTML/图像。这有点棘手。对于 Windows Mobile,它更直观。

还有其他方法可以满足我的需要,但它非常适用于医疗参考应用程序,而且我能够为 BlackBerry 和 Windows Mobile 设计单独的 CSS 文件,以便为两种移动设备重新格式化内容略有不同。 (这有点像在过去测试 Netscape 与 Internet Explorer 的兼容性。)

这可能不适用于您的情况,但如果您的应用程序是 Web 样式的“参考”应用程序,并且您知道如何做好 HTML,那么这种方法可能会奏效。

【讨论】:

【参考方案3】:

我们目前也在调查这个问题,我们发现:

Titanium

Kony Solutions

这些产品有很好的评价。 Titanium 对于社区版是免费的。

【讨论】:

如果您不介意,您能在 Kony Solutions 上分享您的发现吗?【参考方案4】:

另一个值得关注的选项是Rhodes,它是一个 Ruby 框架。

【讨论】:

【参考方案5】:

http://j2mepolish.org 可能是不错的选择,但是,iphone 仅在路线图中。但是已经支持android和BB以及所有其他j2me手机。

【讨论】:

现在,如果 J2ME 本身没有那么糟糕,那可能是一个有用的解决方案。【参考方案6】:

如果您正在编写游戏,请查看我的跨平台(iPhone、Android 等)解决方案,称为 Cuttlefish 引擎,地址为 http://www.cuttlefishengine.com。

【讨论】:

大声笑,在网站上的支持下,您只会得到一个字...“很快”! 该网站已更新,现在有更多信息,包括可下载的测试版。【参考方案7】:

在编写多平台应用程序时,您需要决定要共享多少代码。这两个选项是

一切。您使用(编写)跨平台 gui 库和系统例程 逻辑是跨平台的,但表示层是特定于平台的

第二种方法往往会提供更好的应用程序,但工作量更大(假设您不需要编写跨平台库)。

移动世界的棘手之处在于选择一种语言。现在你有

Java:Android、Blackberry、Java ME 手机 Objective C/C:iPhone、windows Mobile Javascript:Palm Pre

您可以将 java 交叉编译为 javascript,反之亦然。您还可以将 java 编译为 C 或使用可以从 C 调用的 javascript 引擎。我认为您不能在 java/javascript 手机上运行 C。这导致我建议用 Java/Javascript 编写代码。交叉编译(和一般的混合语言)有一个缺点,就是让调试更加困难。

【讨论】:

【参考方案8】:

另外,您可以尝试移动社区框架 (MCF)。这是一个在 iPhone、Android、WinMobile、Symbian 和 BlackBerry 上本地运行的跨平台框架。如果无法直接连接,MCF 会在 Wi-Fi Ad-Hoc 网络中或通过专用代理服务器为您处理网络、位置和邻近操作。它具有简单的 API,并且可以免费使用。这样您就可以在每个平台上分别开发您的应用程序接口和逻辑,并使用 MCF 以您喜欢的方式连接您的应用程序实例。

更多信息http://uvamobiltec.com

【讨论】:

【参考方案9】:

您始终可以在网络上编写一个 javascript 应用程序,并且它应该适用于所有这三个应用程序。当然,这不会安装在手机上。

Android 有一个运行 Javascript 的 webview。我相信其他平台也一样。如果您使用 javascript 编写大部分逻辑,则可以跨平台重用该 javascript。

【讨论】:

【参考方案10】:

另一个框架是http://www.mosync.com/

它似乎支持所有主要平台。

【讨论】:

【参考方案11】:

Adobe Flex 和 Flash Builder 看起来也很有前途。你仍然应该考虑它是专有的,但是在他们的开发者中心网站上使用video 似乎值得。 顺便说一句,最新版本目前支持Android。对 ios 的支持应该会在 2011 年 6 月通过更新推出。

【讨论】:

【参考方案12】:

如果你想编写跨平台的网络应用,SenchaTouch 或Phonegap 是一个不错的选择。

如果您更喜欢原生应用,最好的跨平台解决方案是Titanium。使用 Titanium,您可以用 Javascript 编写应用程序,并将 JS 编译为本机代码(Objective-C、Java...)

【讨论】:

以上是关于同时编写 iPhone、BlackBerry 和 Android 手机的技术? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Python 编写原生 iPhone、Android、Windows、Blackberry 应用程序吗? [复制]

[当套接字可用时使用HTTP长轮询(例如iPhone,Blackberry)

iPhone、Android 和 Blackberry 的移动开发

移动应用程序 - 针对 iPhone、WP7、Android 和 Blackberry

iPhone/Android/BlackBerry 上的 jQuery

在 ASP.NET 中创建一个适用于 Blackberry、Windows Mobile 和 iPhone 的迷你站点