我们正在开发一个S60版本,这个平台有一个不错的Python API。。
然而,Android上的Python并没有什么官方规定,但既然Jython存在,有没有办法让蛇和机器人一起工作??
我们正在开发一个S60版本,这个平台有一个不错的Python API。。
然而,Android上的Python并没有什么官方规定,但既然Jython存在,有没有办法让蛇和机器人一起工作??
当前回答
使用SL4A(它已经在其他答案中提到),您可以运行一个完整的web2py实例(其他python web框架也可能是候选)。SL4A不允许您使用本机UI组件(按钮、滚动条等),但它支持WebViews。WebView基本上只不过是指向固定地址的条带化web浏览器。我相信本地Gmail应用程序使用WebView而不是常规的小部件路线。
这条路线有一些有趣的特点:
在大多数python web框架的情况下,您实际上可以在不使用android设备或android模拟器的情况下进行开发和测试。无论你最终为手机编写了什么Python代码,只要稍加修改(如果有的话),就可以将其放到公共Web服务器上。你可以利用所有疯狂的网络资源:查询、HTML5、CSS3等。
其他回答
一种方法是使用Kivy:
用于快速开发应用程序的开源Python库它们利用了创新的用户界面,如多点触摸应用程序。
Kivy在Linux、Windows、OS X、Android和iOS上运行。您可以在所有支持的平台上运行相同的[python]代码。
Kivy Showcase应用程序
Termux公司
您可以使用为Android提供POSIX环境的Termux应用程序来安装Python。
注意,apt-install-python将在Termux上安装Python3。对于Python2,您需要使用apt-installpython2。
一些演示:https://www.youtube.com/watch?v=fqqsl72mASEGitHub项目:https://github.com/termux
还有新的Android脚本环境(ASE/SL4A)项目。它看起来很棒,并且与原生Android组件有一些集成。
注意:不再处于“主动开发”状态,但可能会出现一些分叉。
交叉编译和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位