用Python同时支持Android和iPhone

3 投票
4 回答
1374 浏览
提问于 2025-04-16 18:50

我想开发一个可以在安卓和iPhone上运行的应用。我猜它们分别使用Java和Objective-C这两种语言。请问我能不能只用一种语言,比如Python?这样做是最好的选择吗?使用Python的话,会不会影响性能、功能等?我会遇到什么限制吗?

4 个回答

0

PhoneGap 是一种可以让你用 JavaScript 和 HTML 来开发 iPhone 和 Android 应用的方法。

0

我知道的最接近的东西是 MonoTouchMonoDroid 这两个项目。它们让你可以用C#来写代码,而不是用iPhone的Objective-C或Android的Java。不过,问题在于用户界面(UI),因为不同的UI模型没有一个通用的抽象方式。理想情况下,你可以把核心的业务逻辑代码写得和UI无关,这样就能实现一些代码的重用。

我没有见过@Snicolas提到的Appcelerator,但它可能在两个平台之间提供了更好的抽象支持。

3

在安卓和iPhone平台上,你不能使用Python。这是因为苹果的开发者协议明确禁止这样做。虽然安卓上有一个安卓脚本环境,但你会发现这并不适合普通用户使用。总之,由于iPhone不支持Python,所以它不能作为一个跨平台的选择。

我认为,想要开发一个真正支持安卓和iPhone的跨平台应用,最好的办法就是使用HTML5。当然,HTML5应用并不是完全原生的,但你可以设计一个混合的方案,把HTML5内容放在设备本地或者你的网站上,然后在一个原生的网页视图中展示出来。

纯HTML5应用并不是完全原生的,因为它们是HTML5而不是CocoaTouch(安卓)应用。它们只能做HTML5允许的事情,并且看起来也像HTML5的样子。一个主要的限制是,它们无法使用设备上的特殊硬件,比如加速度计、陀螺仪等等。不过,它们提供了很大的灵活性和最大的跨平台兼容性。

这是一种极端的情况。另一种极端是“完全原生应用”,也就是用Objective C/Cocoa Touch或Java/Android开发的应用。这种应用可以完全访问SDK和特殊硬件,外观和感觉都是原生的,但在不同平台之间不兼容。

还有第三种可能性,就是混合应用。你可以定义一个原生的基础用户界面(比如在iPhone上做一个基于导航的应用),然后通过HTML5提供你的视图内容和详细界面。这个基础用户界面不能移植,但它能让你做更多的事情,比纯HTML5应用要强大得多。这种方法通常需要在你的应用中使用一个HTML查看器类,这样你就有了:基础用户界面 + 原生网页查看器 + HTML5内容。

关于“在设备本地托管的HTML5内容”:你可以把你的HTML5应用托管在一个网络服务器上,或者直接放在设备本地并从那里加载(不需要网络访问)。

撰写回答