在阅读了关于SO的多个问答之后,我意识到一个有2个选择,即QPython和Kivy可以为Android进行编程,但是,显然两者都采用了不同的方法。我正在尝试验证我的理解,看看我是否缺少一些关键信息。
总体而言,上述观点所产生的观点似乎倾向于奇异果,但多得多。理解正确吗?我错过了任何关键点吗?这不是一个反问,我只是在寻找事实答案。
最佳答案
是的,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。