QPython或Kivy用于Android编程,使用Python生成可安装ap

2024-06-07 15:39:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在阅读了几篇问答之后,我意识到其中一篇有两个选项,即QPython和Kivy,可以为Android编程,不过,显然这两篇文章都采用了不同的方法。我试图验证我的理解,看看我是否遗漏了一些关键信息。

  • QPython允许使用Kivy库开发图形应用程序
  • QPython和Kivy都使用SL4A,而QPython通过添加一些NFC和类似的函数扩展了标准SL4A(或者是Python的绑定)
  • QPython用于创建python脚本,这些脚本可以使用各种模块、库,但它们需要安装QPython才能在目标设备上执行。无法将脚本打包到apk中。
  • Kivy OTOH,允许开发人员使用其基于云的构建系统(可选-本地构建系统可以在Ubuntu Linux上设置)编写编译到apk的应用程序。[但是,我注意到使用Kivy的大多数示例apk都非常大,在40MB范围内。我错过什么了吗?]
  • QPython apk有两个版本,一个用于Python-2.7,另一个用于Python-3.x。
  • QPython示例脚本(HelloWorld.py)的行为似乎不像预期的那样,来自Market的最新QPython-3.x,在Android Kitkat(4.4.2)系统上。我得到的对话框输入文本,但然后我希望一个祝酒词弹出,但什么也没有发生。
  • 给人的印象是QPython和Kivy都是由一个单独的开发人员开发的(或者目前只有一个人真正活跃),而且还没有一个大的社区。[这是我最担心的问题]我注意到有3-4个问题上面有“qpython”标签,还有1000多个问题上面有“kivy”!
  • 同时也得到这样的印象:目前Kivy的开发有点活跃(可能相当活跃),但是对于QPython我没有一个清晰的画面。
  • 与QPython相比,Kivy似乎在试图扩展应用程序的性质,而这些应用程序可能是使用它编写的。有一些API像plyerpyjnius可以帮助扩展可能性。与QPython相比,这也许是相当重要的。
  • QPython和Kivy似乎都在大力开发中。程序(/script)崩溃(/failures)似乎在这两套工具上都有报告。

总的来说,作为上述观点的结果,人们的意见似乎更倾向于基维。理解正确吗?我错过了关键点吗?这不是一个反问句,我只是在寻找事实的答案。


Tags: 脚本应用程序示例开发人员系统选项编程文章
2条回答

在Android上运行Python代码至少还有两种方法(尽管据我所知只是理论上的):

  • 使用并将Java字节码转换为Dalvik,如elsewhere所述。不幸的是,并非所有的CPython库,例如numpy,都可用于jython,如果您使用Java库,请记住Android不提供与桌面JRE相同的库
  • 使用,它从Python代码生成C++代码。然后使用

QPython allows usage of Kivy library for developing graphical applications

是的,qpython是一个解释器+相关工具,并且有一些很好的kivy集成。但是你不能用qpython+android单独将kivy代码编译成一个独立的apk。

QPython and Kivy both use SL4A, while QPython has expanded standard SL4A (or it's bindings for Python) by adding some NFC and similar functions

Kivy不使用SL4A,我们主要通过pyjnius来实现android api的集成,pyjnius是一个用python自动包装java类的库,可以直接调用javaapi。我们还抽象了一些标准的东西到一个pythonic接口与plyer。

(我后来看到你已经找到了这些)

QPython is used to create python scripts that can use wide range of modules, libraries, but they need QPython installed to be executed on target device. There is no way to package script into an apk.

我不怎么使用qpython,但我认为这是正确的,尽管在某些情况下可能有一些工具将脚本转换为apk(例如,如果您有kivy接口,可以使用kivy的构建工具,或者sl4a有这样的工具)。

Kivy OTOH, allows developer to write applications that compile to apk, using their cloud based build system (alternative - local build system can be set up on Ubuntu Linux) [However, I noticed that most of the sample apk's that use Kivy are pretty large, in the 40MB range. Did I miss anything ?]

我们有一个基本的基于云的构建系统,但目前没有其他类似的系统,几乎每个人都使用我们的android构建工具在自己的机器上构建apk。它们运行在linux或OSX上,如果需要,可以很容易地在虚拟机中运行。

由于需要捆绑python解释器和许多模块,一个最小的应用程序大约有7MB的APK大小。

QPython apk has 2 version i.e. one for Python-2.7 and another one for Python-3.x. For Kivy, I'm not sure which version it is.

Kivy本身支持python3,但我们的android构建工具目前只支持python2.7。

Get the impression that both QPython and Kivy are developed by a single developer each (or only one person is really active at present), and don't yet have a biggish community. [This is my biggest concern] I notice that there are 3-4 questions with 'qpython' tag on SO, and more than thousand with 'kivy'!

Kivy开发非常活跃,有几个定期的贡献者,还有一些零星的贡献者。例如,您可以看到最近的提交活动on github。这肯定比一个开发人员多得多!

Kivy seems to be trying to expand the nature of application that could possibly be written using it, compare to QPython. There are API's like plyer and pyjnius that help expand the possibilities. Perhaps quite significantly, compared to QPython.

我想qpython包括pyjnius。不太清楚普莱尔。

Both QPython and Kivy seem to be heavily under development. Program (/ script) crashes (/ failures) seem to be reported on both set of tools.

我不知道你在看什么,但是任何不重要的项目都会报告崩溃/失败/错误。我不认为基维天生就不稳定。

Overall, the opinion as a result (of above points) appears to swing in favour of Kivy, a bit more.

我会说qpython和kivy是完全不同的东西。Qpython允许您编写和运行脚本,而kivy是一个图形框架和相关工具,用于创建独立的应用程序。两者都可以完成的任务有一些重叠,但也有很多不适合两者的地方——例如,我认为qpython可能更方便地制作没有gui的快速脚本,例如简单的自动化(我认为这是可能的),但我认为kivy是一个更好的选择,它可以创建独立的应用程序,而不是简单的gui。当然,如前所述,您可以用qpython编写kivy代码,但对于任何非琐碎的事情来说,这都不是一个很好的用户体验,您无论如何都需要一台台式机/笔记本电脑来制作一个独立的apk。

相关问题 更多 >

    热门问题