从Java中的Android App执行python脚本

您好我正在尝试从android中的java代码中找到一种执行python脚本的方法。我对此事做了一个研究,但我发现的唯一一件事就是如何在APK for android(Kivy等)中转换python脚本。
更具体地说,我有一个包含很多函数的脚本。我想要做的是在我的java代码中基于这个python脚本创建一个对象,并通过这个对象来调用我的函数。
我不能将我的python代码转换为java,因为我使用仅存在于python中的各种库。任何建议都会有所帮助并深深体会到。
下面是我的python脚本片段。我使用库魅力进行加密。

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) 

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

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

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

  • Github: https : //github.com/damonkohler/sl4a
  • 教程: https : //github.com/damonkohler/sl4a/blob/wiki/Tutorials.md

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

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