我们正在开发一个S60版本,这个平台有一个不错的Python API。。

然而,Android上的Python并没有什么官方规定,但既然Jython存在,有没有办法让蛇和机器人一起工作??


当前回答

又一次尝试:https://code.google.com/p/android-python27/

这一个直接将Python解释器嵌入到你的应用程序apk中。

其他回答

Android脚本层

SL4A可以随心所欲。您可以从他们的网站轻松地将其直接安装到您的设备上,而不需要root用户。

它支持多种语言。Python是最成熟的。默认情况下,它使用Python 2.6,但有一个3.2端口可以替代。我曾在Galaxy S2上使用过该端口进行各种操作,并且工作正常。

API

SL4A为每种受支持的语言提供了一个android库端口。该库通过单个Android对象提供了与底层Android API的接口。

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

每种语言都有几乎相同的API。您甚至可以在webview中使用JavaScript API。

let droid = new Android();
droid.ttsSpeak("hello from js");

用户界面

对于用户界面,您有三个选项:

您可以通过应用程序编程接口。这对于确认对话和其他基本用户输入很有用。您还可以从Python脚本内部打开一个Web视图,然后使用HTML5用于用户界面。当您使用Python中的webview时,可以通过在webview和Python进程之间来回发送消息UI将不是原生的,但它仍然是一个很好的选择有有一些对原生Android用户界面的支持,但我不是确定它的效果如何;我只是从来没有用过。

你可以混合选项,这样你就可以在主界面上有一个webview,并且仍然使用本机对话。

QPython公司

有一个名为QPython的第三方项目。它建立在SL4A之上,并加入了一些其他有用的东西。

QPython为您提供了一个更好的UI来管理您的安装,并包括一个小的触摸屏代码编辑器、一个Python外壳和一个用于包管理的PIP外壳。它们还有一个Python 3端口。这两个版本都可以从Play商店免费获得。QPython还将Android项目(包括Kivy)上的Python库捆绑在一起,因此它不仅仅是SL4A。

请注意,QPython仍在开发SL4A的分支(不过,老实说不多)。主要的SL4A项目本身几乎已经死亡。

有用的链接

SL4A项目(现在在GitHub上):https://github.com/damonkohler/sl4aSL4A Python 3端口:https://code.google.com/p/python-for-android/wiki/Python3QPython项目:http://qpython.com学习SL4A(教程):https://www.tutorialspoint.com/sl4a/index.htm

交叉编译和Ignifuga

我的博客有针对Android的Python 2.7.2交叉编译的说明和补丁。

我还开源了我的2D游戏引擎Ignifuga。它基于Python/SDL,并为Android进行交叉编译。即使你不在游戏中使用它,你也可以从代码或生成器实用程序中获得有用的想法(以Tim的名字命名为Schafer……你知道是谁)。

如果您正在寻找3.4.2或更新版本(截至本文撰写时为3.9.6),另一个选择是GitHub上的这个存档。

Python 3 Android 3.4.2或Python 3 Android 3.9.6

我相信原始存档支持Python 3.4.2,最新的GRRedwings分支支持3.9.6和NDK的22b版本。较旧的分支支持其他版本,但使用docker编译起来不那么容易。

旧版本只需克隆存档,运行make,即可获得.so或.a

较新的版本遵循ReadMe,但它使用docker进行一致的构建。

我目前使用它在android设备上运行原始Python。通过对构建文件进行一些修改,您还可以使x86和armeabi 64位

另一个选项似乎是pyqtdeploy,引用文档如下:

一种工具,与Qt提供的其他工具一起使用Python编写的PyQt4和PyQt5应用程序的部署v2.7或Python v3.3或更高版本。它支持部署到桌面平台(Linux、Windows和OS X)和移动平台(iOS和Android)。

根据通过pyqtdeploy和Qt5将PyQt5应用程序部署到Android上的说法,它是积极开发的,尽管很难找到运行Android应用程序的示例或如何将所有必需的库交叉编译到Android的教程。不过,这是一个值得记住的有趣项目!

看看BeeWare。它已经大幅增长。它获得了PSF(Python软件基金会)教育资助。

Beeware的目标是能够使用Python为所有受支持的操作系统(包括Android)创建本地应用程序。

官方网站:Beeware

Github Repo:https://github.com/beeware