6. 在 Android 上使用 Python

Android 上的 Python 与桌面平台上的 Python 不同。在桌面平台上,Python 通常作为系统资源安装,可供该计算机的任何用户使用。然后,用户通过运行 python 可执行文件并在交互式提示符下输入命令或运行 Python 脚本来与 Python 交互。

在 Android 上,没有作为系统资源安装的概念。唯一的软件分发单元是“应用”。也没有可以运行 python 可执行文件或与 Python REPL 交互的控制台。

因此,在 Android 上使用 Python 的唯一方法是嵌入模式,即编写一个原生 Android 应用程序,使用 libpython 嵌入 Python 解释器,并使用 Python 嵌入 API 调用 Python 代码。然后,完整的 Python 解释器、标准库和所有 Python 代码都打包到您的应用程序中供其私有使用。

Python 标准库在 Android 上有一些明显的遗漏和限制。有关详细信息,请参阅 API 可用性指南

6.1. 将 Python 添加到 Android 应用

只有在您计划自己为 Android 编译 Python 时才需要这些说明。大多数用户不需要这样做。相反,请使用以下工具之一,它们将提供更轻松的体验。

如果您确定要手动完成所有这些操作,请继续阅读。您可以使用 testbed 应用 作为指导;下面的每个步骤都包含指向相关文件的链接。

  • 按照 Android/README.md 中的说明构建 Python。

  • 将代码添加到您的 build.gradle 文件中,以将以下项复制到您的项目中。除了您自己的 Python 代码外,所有项都可以从 cross-build/HOST/prefix/lib 复制。

    • 在您的 JNI 库中

      • libpython*.*.so

      • lib*_python.so(外部库,例如 OpenSSL)

    • 在您的 assets 中

      • python*.*(Python 标准库)

      • python*.*/site-packages(您自己的 Python 代码)

  • 将代码添加到您的应用程序中以将 assets 提取到文件系统

  • 将代码添加到您的应用程序中以在嵌入模式下启动 Python。这需要是通过 JNI 调用的 C 代码。