【问题标题】:Execute Python script from Android app in Java?用Java从Android应用程序执行Python脚本?
【发布时间】:2016-03-18 02:06:39
【问题描述】:

我正在尝试找到一种方法来在 Android 中从我的 Java 代码执行 Python 脚本。我对此事进行了研究,但我发现的唯一一件事是,如何将 APK 中的 python 脚本转换为 android (Kivy et.c.)。

更具体地说,我有一个包含很多函数的脚本。我想做的是在我的 java 代码中基于这个 python 脚本创建一个对象,并通过这个对象调用我的函数。

我无法将我的 Python 代码转换为 Java,因为我使用了仅存在于 python 中的各种库。

任何建议都会有所帮助并深表感谢。


以下是我的 Python 脚本的 sn-p。我将图书馆魅力用于密码学。

from charm.core.math.integer import integer,serialize,deserialize
class serializeClass:
    def __init__(self)
        ...

    def serialize(self, charm_object):
        assert type(charm_object) == integer, "required type is integer, not: ", type(charm_object)
        return serialize(charm_object)

    def deserialize(self, object):
        assert type(object) == bytes, "required type is bytes, not: ", type(object)
    return deserialize(object)

【问题讨论】:

  • 能否提供一些python代码的sn-ps。
  • 也许使用jython
  • 我添加了一个简单的脚本示例。我想找到一种方法从我的 java 代码中调用这些函数
  • @PL13 : 你有办法在 Java 中调用 python 对象吗?

标签: java android python scripting


【解决方案1】:

您可以使用允许您在 Android 上运行 Python 代码的 SL4A 项目。

【讨论】:

    【解决方案2】:

    一种选择是创建一个 Web 服务 API 以允许通过 HTTP 提供您的 python 结果。那么这只是一个简单的 Android 与 HTTP Web 服务通信的问题。

    你可能会发现一些 python 到 java 的桥接,但根据我的经验,这些东西在实践中总是有局限性,理论上看起来很棒,但最终不能正常工作。

    【讨论】:

    • 是的,我已经想到了这些选项,但我的应用程序将成为代理重新加密项目的一部分,因此我必须在 android 设备上运行 python 才能重新加密我的数据。
    【解决方案3】:

    查看 Qpython,可能是一个简单的解决方案。您可以针对 Qpython android python 核心运行您的 python 脚本,或者部署您的。

    签出此存储库:https://github.com/qpython-android/app-call-qpython-api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 2022-10-18
      • 1970-01-01
      相关资源
      最近更新 更多