我们正在研究一个 S60 版本,这个平台有一个很好的Python API..

然而,Android 上还没有任何关于 Python 的官方信息,但自从 Jython 存在,有没有办法让蛇和机器人一起工作?

有帮助吗?

解决方案

一种方法是使用 基维:

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

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

Kivy 展示应用程序

其他提示

还有新的 Android 脚本环境 (ASE/SL4A)项目。它看起来棒极了,并且与原生 Android 组件进行了一些集成。

笔记:不再处于“积极开发”状态,但某些分叉可能处于“积极开发”状态。

是的!: Android 脚本环境

一个例子 通过马特·卡茨 via 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 子集 是 Pygame 功能子集到 Android 平台的端口。该项目的目标是允许创建 Android 专用游戏,并简化游戏从类 PC 平台到 Android 的移植。”

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

我已经发布了针对 Android 交叉编译 Python 2.7.2 的说明和补丁,您可以在我的博客中获取: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

编辑:我已经开源了 火神, ,我的 2D 游戏引擎,它基于 Python/SDL,并且针对 Android 进行交叉编译。即使您不将其用于游戏,您也可能从代码和构建器实用程序(名为 Schafer,以 Tim 命名……您知道谁)中获得有用的想法。

Android 脚本层

SL4A 做你想做的事。您可以轻松地从他们的网站将其直接安装到您的设备上,并且不需要 root。

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

应用程序编程接口

SL4A 提供了他们的端口 android 每种受支持语言的库。该库通过单个 API 提供底层 Android API 的接口 Android 目的。

from android import Android

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

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

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

用户界面

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

  • 您可以通过API轻松地使用通用的本地对话和菜单。这对于确认对话和其他基本用户输入很有用。
  • 您还可以从Python脚本内部打开WebView,然后将HTML5用于用户界面。当您使用Python中的WebViews时,您可以在WebView和产生它的Python进程之间来回传递消息。UI不会是本地的,但仍然是一个不错的选择。
  • 一些 支持本机Android用户界面,但我不确定它的工作原理;我只是从来没有使用过它。

您可以混合选项,这样您就可以拥有主界面的网络视图,并且仍然使用本机对话。

QPython

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

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

请注意,QPython 仍在开发 SL4A 的分支(尽管说实话,并没有太多进展)。主要的 SL4A 项目本身几乎已经死了。

有用的链接

作为一个 Python 作为一名爱好者和 Android 程序员,我很遗憾地说这并不是一个好方法。有两个问题。

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

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

基维


我想将此作为内容的扩展发布 @约翰穆德 已经回答了(但请耐心听我说,因为英语不是我的母语)

从那时起已经过去了很多年,Kivy 已经发展到 v1.9-dev。在我看来,Kivy 最大的卖点是它的跨平台兼容性。您可以在本地环境(Windows/*nix 等)下进行编码和测试,还可以构建、调试和打包应用程序以在 Android/iOS/Mac/Windows 设备上运行。

与Kivy自己的 电压 语言,您可以轻松地编码和构建GUI界面(它就像Java XML,但与TextView等不同,KV有自己的 ui.widgets 对于类似的翻译),我认为这很容易采用。

现在 建造者适用于 Android 的 python 是最值得推荐的构建/打包应用程序的工具。我已经尝试过它们,并且可以肯定地说它们使使用 Python 构建 Android 应用程序变得轻而易举。对控制台/终端/命令提示符感到满意的用户在使用它们时应该没有问题,并且他们的指南也有详细记录。

此外,iOS 是 Kivy 的另一个大卖点,前提是您可以使用相同的代码库,只需很少的更改即可在 iOS 设备上测试运行,通过 kivy-ios Homebrew 工具,尽管在设备上运行之前构建需要 Xcode(据我所知 Xcode 中的 iOS 模拟器目前不适用于 x86 架构构建)。还有一些依赖性问题,必须在 Xcode 中手动编译和摆弄才能成功构建,但解决这些问题并不会太困难,而且人们在 基维谷歌集团 也确实很有帮助。

总而言之,拥有良好 Python 知识的用户应该可以在几周(如果不是几天)内掌握基础知识来构建一些简单的应用程序。

另外值得一提的是,您可以将 Python 模块与构建捆绑(构建配方),以便用户可以真正利用 Python 为我们带来的许多现有库,例如 要求 & 太平洋石油公司 ETC。通过 Kivy的扩展支持.

有时,您的应用程序需要功能,而功能超出了Kivy可以提供的功能。在这种情况下,有必要诉诸外部软件库。鉴于Python生态系统的丰富性,已经有很多软件库可以立即导入和使用。

最后但并非最不重要的一点是,如果您打算将 Kivy 用于更严肃/商业的项目,您可能会发现现有模块并不令人满意。不过,有一些可行的解决方案,“正在进行中的工作” 皮尼乌斯 对于安卓系统,以及 皮尤克斯. 。用户现在可以通过这些模块访问 Java/Objective-C 类来控制一些本机 API。

我在 Kivy 的经验是,它最适合经验丰富的 Python 程序员和一些想要快速开发或简单代码库维护的认真程序员。它在多个平台上运行良好,尽管并非如此 本国的 感觉。

我确实希望一些 Python 应用程序程序员会发现这些信息有用并开始关注 Kivy。如果社区有很大的兴趣,它只会变得更好(随着更多的支持和库/模块的移植)。

附:我与 Kivy 没有任何关系,我只是一个真正喜欢将 Python 编码乐趣带入移动/跨平台开发这一想法的程序员。

目前还不行,您很幸运能让 Jython 尽快投入工作。如果您计划现在开始开发,那么您最好暂时坚持使用 Java。

使用 SL4A (在其他答案中已经提到过)您可以 跑步 一个成熟的 网络2py 实例(其他 python 网络框架 也可能是候选人)。SL4A 不允许您执行本机 UI 组件(按钮、滚动条等),但它确实支持 网页视图. 。WebView 基本上只不过是指向固定地址的条带化 Web 浏览器。我相信原生 Gmail 应用程序使用 WebView,而不是采用常规的小部件路线。

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

  • 对于大多数 Python Web 框架,您实际上可以在不使用 Android 设备或 Android 模拟器的情况下进行开发和测试。
  • 无论您最终为手机编写什么 Python 代码,都可以将其放在公共网络服务器上,只需进行很少(如果有的话)修改。
  • 您可以利用所有疯狂的网络内容:查询、HTML5、CSS3 等

我使用 QPython 应用程序。它有一个编辑器、一个控制台,你可以用它运行你的 Python 程序。该应用程序是免费的,链接是 http://qpython.com/.

您可以使用 特穆克斯 应用:

请注意 apt install python 安装 python 3。对于 python 2,您应该调用 apt install python2。

这里有一些演示: https://www.youtube.com/watch?v=fqqsl72mASE

还有 github 页面: https://github.com/termux

来自 适用于安卓的Python 地点:

Python for android 是一个项目,用于创建您自己的 Python 发行版(包括您想要的模块),并创建一个包含 python、库和您的应用程序的 apk。

另一种尝试: https://code.google.com/p/android-python27/

它直接将 Python 解释器嵌入到您的应用程序 apk 中。

您可以使用以下命令运行 Python 代码 SL4a. 。sl4a支持Python, 珀尔, JRuby, 卢阿, 、BeanShell、JavaScript、 , 和 shell 脚本。

你可以学习sl4a Python 示例.

还有可能运行 mosync 的 python-on-a-chip: 谷歌群组

查科皮

查科皮 是 Android Studio 基于 Gradle 的构建系统的插件。它专注于 紧密结合 使用标准的Android开发工具。

  • 提供完整的API调用 来自 Python 的 Java 或者 来自 Java 的 Python, ,允许开发人员使用最适合其应用程序每个组件的语言。

  • 可以自动下载的 PyPI 包 并将它们构建到应用程序中,包括选定的本机包,例如 NumPy。

  • 它允许从 Python 完全访问所有 Android API,包括本机用户界面工具包(纯 Python 活动示例).

这是一个商业产品,但它可以免费供开源使用,并且将永远保持这种状态。

(我是这个产品的创造者。)

Playstore中有一个名为QPython3的应用程序,可用于编辑和运行Python脚本。

Play 商店链接

另一个名为 Termux 的应用程序,您可以在其中使用命令安装 python

pkg install python

Play 商店链接

如果你想开发应用程序,有 Python Android 脚本层 (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

您可以使用 QPython:

它有一个 Python 控制台、编辑器以及包管理/安装程序

http://qpython.com/

它是一个开源项目,同时具有 Python 2 和 Python 3 实现。您可以直接从 github 下载源代码和 Android .apk 文件。

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases

没有在这里看到这篇文章,但由于 Necessitas,Qt 可以在 Android 上运行,因此您可以使用 Pyside 和 Qt 来完成此操作。

目前看来这很麻烦,但最终可能是一条可行的路线......

http://qt-project.org/wiki/PySide_for_Android_guide

如果您正在寻找 3.4.2 或 3.5.1,另一个选择是 GitHub 上的这个存档。

Python3-安卓3.4.2 或者 Python3-安卓3.5.1

目前支持Python 3.4.2或3.5.1以及NDK的10d版本。它还可以支持3.3和9c、11c和12

很好的是,您只需下载它,运行 make 即可获得 .so 或 .a

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

另一种选择似乎是 pyqt部署 其中引用的文档是:

该工具与QT提供的其他工具结合使用,可以使PYQT4和PYQT5应用程序的部署使用Python v2.7或Python v3.3或更高版本编写。它支持部署到桌面平台(Linux,Windows和OS X)以及移动平台(iOS和Android)。

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

查看 珐琅质 它采用了 React-Native 概念并将其应用到 Python 中。

它允许用户使用本机 Android 小部件构建应用程序,并提供 API 来使用 python 中的 android 和 java 库。

它还与 android-studio 集成,并共享一些 React 的优秀开发功能,例如代码重新加载和远程调试。

看一眼 蜜蜂软件. 。在回答这个问题时,它仍处于早期开发阶段。它的目标是能够使用 Python 创建适用于所有支持的操作系统(包括 Android)的本机应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top