我们正在努力 S60 版本和这个平台有一个很好的Python API。
但是,在Android上没有关于Python的官方消息,但从那以后 Jython的 存在,有没有办法让蛇和机器人一起工作?
一种方法是使用 Kivy:
用于快速开发应用程序的开源Python库 利用创新的用户界面,如多点触控应用程序。
Kivy可以在Linux,Windows,OS X,Android和iOS上运行。您可以在所有支持的平台上运行相同的[python]代码。
还有新的 Android脚本环境 (ASE / SL4A)项目。它看起来很棒,并且与原生Android组件有一些集成。
注意:不再在“积极开发”下,但有些叉子可能会。
一个例子 通过Matt Cutts 通过SL4A - “这是用六行Python代码编写的条形码扫描器:
import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
还有 SL4A 由Google员工大量撰写。
“该 适用于Android的Pygame Subset 是Android平台的Pygame功能子集的端口。该项目的目标是允许创建特定于Android的游戏,并简化从类似PC的平台到Android的游戏移植。“
这些例子包括一个包装在APK中的完整游戏,非常有趣。
我已经发布了针对Android交叉编译Python 2.7.2的说明和补丁,你可以在我的博客上找到它: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/
编辑:我是开源的 Ignifuga,我的2D游戏引擎,基于Python / SDL,它可以跨Android编译。即使您不将它用于游戏,您也可以从代码和构建器实用程序中获得有用的想法(在Tim之后命名为Schafer ......你知道是谁)。
SL4A 做你想要的。您可以从他们的站点直接将其直接安装到您的设备上,而不需要root。
它支持多种语言。 Python是最成熟的。默认情况下,它使用Python 2.6,但有一个 3.2端口 你可以改用。我已经在Galaxy S2上使用了那个端口来处理各种各样的事情并且工作正常。
SL4A提供了他们的端口 android
每种支持语言的库。该库通过单个提供了底层Android API的接口 Android
目的。
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
每种语言都有相同的API。您甚至可以在Web视图中使用JavaScript API。
let droid = new Android();
droid.ttsSpeak("hello from js");
对于用户界面,您有三个选项:
您可以混合选项,这样您就可以拥有主界面的webview,并仍然使用本机对话。
有一个名为的第三方项目 QPython。它建立在SL4A之上,并引入了一些其他有用的东西。
QPython为您提供了更好的UI来管理您的安装,并包含一个小的触摸屏代码编辑器,一个Python shell和一个用于包管理的PIP shell。他们还有一个Python 3端口。这两个版本都可以从Play商店免费获得。 QPython还捆绑了Android项目中的一堆Python库,包括Kivy,所以它不仅仅是SL4A。
请注意,QPython仍在开发他们的SL4A分支(但实际上并不多)。主要的SL4A项目本身已经死了。
作为一个 蟒蛇 爱人和Android程序员,我很遗憾地说这不是一个好方法。有两个问题。
一个问题是Android开发工具不仅仅是一种编程语言。很多Android图形都涉及配置显示的XML文件,类似于HTML。内置的java对象实际上与这个XML布局集成在一起,并且比编写自己的代码从逻辑到位图要容易得多。
另一个问题是G1(以及可能在不久的将来可能还有其他Android设备)真的不那么快。 200 MHz处理器和RAM非常有限。即使在Java中,如果你想让你的应用程序非常流畅,你也必须做大量的重写 - 避免更多的对象创建。 Python仍会在移动设备上停留太长时间。
不是现在,你很幸运能让Jython尽快上班。如果您现在计划开始开发,那么现在只需坚持使用Java就可以了。
使用SL4A(已经在其他答案中已经提到过),你可以 跑 一个全面的 的web2py 实例(其他 python web框架 也可能是候选人)。 SL4A不允许您使用本机UI组件(按钮,滚动条等),但它确实支持 网页视图。 WebView基本上只是一个指向固定地址的条带化Web浏览器。我相信原生Gmail应用使用WebView而不是常规小部件路径。
这条路线会有一些有趣的特点: