QPython或Kivy用于使用Python进行Android编程 - 生成可安装的apk

ica*_*s74 24 python android sl4a kivy qpython

在SO上阅读了几个Q&A之后,我意识到有一个选项,即QPython和Kivy为Android做编程,但是,显然两者都采用不同的方法.我试图验证我的理解,看看我是否遗漏了一些关键信息.

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

总的来说,结果(上述观点)的观点似乎更倾向于Kivy.理解是否正确?我错过了任何关键点吗?这不是一个修辞问题,我只是在寻找事实答案.

inc*_*ent 15

QPython允许使用Kivy库来开发图形应用程序

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

QPython和Kivy都使用SL4A,而QPython通过添加一些NFC和类似功能扩展了标准SL4A(或它的Python绑定)

Kivy不使用SL4A.我们主要通过pyjnius实现android api集成,pyjnius是一个用python自动包装java类的库,它允许你直接调用java api.我们还使用plyer将一些标准内容抽象为pythonic接口.

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

QPython用于创建可以使用各种模块库的python脚本,但是它们需要安装QPython才能在目标设备上执行.没有办法将脚本打包到apk中.

我没有太多使用qpython,但我认为这是正确的,虽然在某些情况下可能会有一些工具将脚本转换为apks(例如,如果你有一个kivy接口你可以使用kivy的构建工具,或者sl4a可能有一些东西用于此).

Kivy OTOH允许开发人员使用他们的基于云的构建系统编写编译为apk的应用程序(替代方案 - 可以在Ubuntu Linux上设置本地构建系统)[但是,我注意到大多数使用Kivy的示例apk都非常大,在40MB范围内.我错过了什么吗?]

我们有一个基于云的基本构建系统,但现在没有其他类似的东西,几乎每个人都使用我们的android构建工具在自己的机器上构建apks.它们可以在linux或OSX上运行,如果需要,可以在虚拟机中轻松运行.

由于需要捆绑python解释器和许多模块,因此最小应用程序的大小约为7MB.

QPython apk有2个版本,一个用于Python-2.7,另一个用于Python-3.x.对于Kivy,我不确定它是哪个版本.

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

让人觉得QPython和Kivy都是由一个开发者开发的(或者目前只有一个人真正活跃),而且还没有一个庞大的社区.[这是我最关心的问题]我注意到SO上有'qpython'标签有3-4个问题,'kivy'有超过千个问题!

Kivy的发展非常活跃,有几个常规贡献者加上更多的零星.您可以在github上查看最近的提交活动.它肯定比单个开发人员多得多!

与QPython相比,Kivy似乎试图扩展可能使用它编写的应用程序的本质.像plyer和pyjnius这样的API有助于扩展可能性.与QPython相比,可能非常重要.

我认为qpython包含pyjnius.关于plyer不确定.

QPython和Kivy似乎都在大力开发中.似乎在两组工具上都报告了程序(/ script)崩溃(/失败).

我不确定你在看什么,但任何非平凡的项目都会报告崩溃/失败/错误.我不认为kivy特别不稳定.

总的来说,结果(上述观点)的观点似乎更倾向于Kivy.

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