Kivy和PY4A之间的差异

我对android开发很陌生,在Java,C#,Python等方面有过一些经验。Python是我最喜欢的,我想用它编写Android应用程序。
然后我看到这个问题:
有没有办法在Android上运行Python?
最被投票的答案提到了KivyASE (现在是SL4A ,包括PY4A )。
但是,在一些Googlesearch之后,我无法find有关KivyPY4A之间区别的有用信息。 寻找KivySL4A也是徒劳的。

所以,对于KivyPY4A
有人可以解释,简单来说:
– 他们之间有什么相似和不同之处?
– 他们的好坏是什么?
– 还有其他好的select吗?

Solutions Collecting From Web of "Kivy和PY4A之间的差异"

令人困惑的是,有两个项目叫做“python for android”。

SL4A可以让你在android上运行python脚本。 他们的PY4A是他们的工具链中的一个步骤,但我不太了解。 我知道有一些与Android API的集成(你可以使用一些硬件等),但如何运行程序的限制(他们不是完整的应用程序,没有GUI等)。 这是我看到其他post推断的东西,我没有尝试过,不要把我的话细节。 (编辑:其实似乎有一些包装和创造一个gui的方法的一些能力,我不知道细节)

Kivy是一个支持许多操作系统的graphics框架(linux,windows,osx,android,ios,或许更多)。 你用它来构buildpython guis。 kivy项目也启动了他们自己的python-for-android项目,它提供了一些方法来编译android的python解释器,并将其作为一个实际的android应用程序(包括与pyjnius等的java api集成)打包。 Kivy与它很好地集成在一起,所以你可以很容易地编译一个用于android的python应用程序,虽然我不认为这个python-for-android仅限于kivy应用程序。

所以,他们是完全不同的项目,碰巧有一个同名的组件。 SL4A是用于在android上运行python脚本,我不太了解它的限制或细节。 Kivy是一个pythongraphics框架(不限于android),可以通过自己的不同的python-for-android项目编译完全集成gui android应用程序。

你可以看到(例如) kivy展示一些简单的kivyfunction的例子,或者用kivy制作一个简单游戏的例子。 这些仅仅是例子,更多的是可能的。

我发现这非常有用(和最近):

在Android中embeddedPython(教程系列)

http://techventura.wordpress.com/2014/04/21/embedding-python-in-android-series/

它描述了如何将Pythonembedded到Android应用程序中,使用与Kivy相关的Python-for-Android,而不是Kivy本身(根据我的发现,这在Kivy或Python-for-Android文档中都没有描述)这在各种情况下是有用的(例如现有的Java应用程序,直接使用本地GUI等)

由于Kivy的Python-for-Android比SL4A(ASE)的Py4A更加积极地开发,所以在我看来,这是一条路。

(我认为这也将是非常相关的,也许更适当的是有没有办法在Android上运行Python?,但回答需要比我目前更多的声誉。)

至于原始问题:我认为Kivy的Python-for-Android和SL4A(ASE)的Py4A最相关的区别在于,后者现在仍然被认为是“alpha质量”,而前者似乎远远更活跃。 当然,如果你把Kivy作为一个整体,它是一个跨平台的GUI库。

另外,我对各种解决scheme的研究结果:

  • 谷歌的Py4A + SL4A(ASE) :使用,但alpha质量,没有积极开发
  • 基维
    • 提供Python-for-Android,从Java调用python代码
    • 提供Pyjnius,从python调用Java代码
    • 似乎正在积极发展
    • 有上面链接的教程embedded到Java Android应用程序中
    • 如果感兴趣的话,跨平台的GUI(Kivy本身)
  • QPython
    • 主要是一个在Android上启动python脚本的交互式环境
    • 基于Py4A,但Pyjnius(见上文)据说是可用的
    • embeddedJava应用程序是可用的,但有一定的限制:Python作业必须以Intent开始,并从stdout收集结果; 这意味着更多的分离,在一些情况下可能是可取的,我想。
  • python.org :没有提到所有的Android

你尝试过QPython吗? 这是一个新的提供更多function的Android实例的Python。