Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在Android上运行Python?_Android_Python_Jython_Ase_Android Scripting - Fatal编程技术网

有没有办法在Android上运行Python?

有没有办法在Android上运行Python?,android,python,jython,ase,android-scripting,Android,Python,Jython,Ase,Android Scripting,我们正在开发一个版本,这个平台有一个很好的Python API 然而,Android上的Python并没有官方规定,但既然存在,有没有办法让蛇和机器人一起工作呢???目前还没有,你很快就能让Jython工作了。如果你打算现在就开始你的开发,你最好现在就坚持使用Java。作为一个爱好者和Android程序员,我很难过地说,这不是一个好办法。有两个问题: 一个问题是,Android开发工具不仅仅有一种编程语言。许多Android图形都涉及XML文件来配置显示,类似于HTML。内置java对象与此XM

我们正在开发一个版本,这个平台有一个很好的Python API


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

目前还没有,你很快就能让Jython工作了。如果你打算现在就开始你的开发,你最好现在就坚持使用Java。

作为一个爱好者和Android程序员,我很难过地说,这不是一个好办法。有两个问题:

一个问题是,Android开发工具不仅仅有一种编程语言。许多Android图形都涉及XML文件来配置显示,类似于HTML。内置java对象与此XML布局集成,从逻辑到位图比编写代码容易得多

另一个问题是G1(可能在不久的将来还有其他Android设备)的速度没有那么快。200 MHz处理器和RAM非常有限。即使是在Java中,如果你想让你的应用程序非常流畅,你也必须进行大量的重写以避免更多的对象创建。在移动设备上,Python的运行速度在一段时间内会太慢。

是的!:

通过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)
还有一个新的(ASE/SL4A)项目。它看起来很棒,并且与本地Android组件进行了一些集成

注意:不再在“主动开发”下,但有些分叉可能是。

Android的Pygame子集 是一个为Python(桌面)设计的2D游戏引擎,深受新程序员的欢迎

…Pygame功能子集到Android平台的一个端口。该项目的目标是允许创建特定于Android的游戏,并简化游戏从类似PC的平台到Android的移植

示例包括打包为APK的完整游戏,这非常有趣。

交叉编译&Ignifuga 我的博客提供了用于Android的Python 2.7.2的交叉编译

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

一种方法是使用:

用于快速开发应用程序的开放源码Python库 使用创新的用户界面,如多点触摸应用程序

Kivy在Linux、Windows、OSX、Android和iOS上运行。您可以在所有受支持的平台上运行相同的[python]代码

使用SL4A(在其他答案中已经提到),您可以创建一个完整的实例(其他也可能是候选实例)。SL4A不允许您创建本机UI组件(按钮、滚动条等),但它确实支持。WebView基本上只不过是指向固定地址的分条web浏览器。我相信本地Gmail应用程序使用WebView,而不是常规的小部件路径

这条路线将有一些有趣的特点:

  • 对于大多数pythonweb框架,您实际上可以在不使用android设备或android仿真器的情况下进行开发和测试
  • 无论您最终为手机编写的Python代码是什么,只要稍加修改(如果有的话),都可以放到公共Web服务器上
  • 你可以利用所有疯狂的网络资源:查询、HTML5、CSS3等等
从网站:

pythonforandroid是一个创建您自己的Python发行版的项目,包括您想要的模块,并创建一个包含Python、libs和您的应用程序的apk

Android脚本层 您可以轻松地从他们的站点直接将其安装到您的设备上,而不需要root用户

它支持多种语言。Python是最成熟的。默认情况下,它使用Python2.6,但有一个端口可以替代。我在Galaxy S2上使用过该端口进行各种操作,效果很好

美国石油学会 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脚本内部打开webview,然后使用HTML5 当您使用Python的WebView时,您可以 在webview和Python进程之间来回传递消息 生成它。UI将不是本机的,但它仍然是一个很好的选择 有
  • 有一些对原生Android用户界面的支持,但我不是 当然它工作得很好,我只是从来没用过
您可以混合使用选项,这样就可以在主界面上使用webview,并且仍然使用本机对话

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

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

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

有用的链接
  • SL4A项目(现在在GitHub上):
  • SL4A Python 3端口:
  • QPython项目
    pkg install python