在阅读了关于SO的多个问答之后,我意识到一个有2个选择,即QPython和Kivy可以为Android进行编程,但是,显然两者都采用了不同的方法。我正在尝试验证我的理解,看看我是否缺少一些关键信息。

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

  • 总体而言,上述观点所产生的观点似乎倾向于奇异果,但多得多。理解正确吗?我错过了任何关键点吗?这不是一个反问,我只是在寻找事实答案。

    最佳答案



    是的,qpython是解释器和相关工具,并且具有一些很好的奇异集成。您不能仅通过qpython + android将kivy代码编译为独立的apk。



    Kivy不使用SL4A。我们主要通过pyjnius实现android api集成,pyjnius是使用python自动包装Java类的库,可让您直接调用java api。我们还使用plyer将一些标准的东西抽象到了pythonic接口(interface)中。

    (我以后看到您已经找到了这些)



    我不太使用qpython,但是我认为这是正确的,尽管在某些情况下可能会有一些工具将脚本转换为apk(例如,如果您具有kivy界面,则可以使用kivy的构建工具,或者sl4a为此提供了一些功能) )。



    我们有一个基于云的基本构建系统,但现在没有其他类似的东西了,几乎每个人都使用我们的android构建工具在自己的计算机上构建apk。它们可以在linux或OSX上运行,并且在必要时可以轻松地在虚拟机中运行。

    由于必须 bundle python解释器和许多模块,因此最小的应用程序的APK大小约为7MB。



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



    基维人的发展非常活跃,有几位定期捐助者和零星的捐助者。例如,您可以查看最近的提交 Activity on github。当然,它不仅仅是一个开发人员!



    我认为qpython包括pyjnius。不确定plyer。



    我不确定您在看什么,但是任何不重要的项目都会报告崩溃/故障/错误。我认为奇异果并不是天生就不稳定的。



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

    09-06 02:01