Kivy和PY4A之间的区别

oct*_*ref 28 python android sl4a kivy

我是Android开发的新手,我有过Java,C#,Python等方面的经验.我最喜欢Python,我想用它来编写Android应用程序.
然后我看到了这个问题:
有没有办法在Android上运行Python?
提到的最多的答案KivyASE(现在SL4A和包括PY4A).
然而,一些谷歌上搜索后,我是不是能够找到的有关之间的差异的任何有用的信息KivyPY4A.搜索之间的差异KivySL4A是无果而终,太.

因此,对于KivyPY4A,
可有人解释,在宽松的条件:
-是它们之间有什么异同?
- 他们的优点和缺点是什么?
- 还有其他好的选择吗?

inc*_*ent 25

令人困惑的是,有两个名为'python for android'的项目.

SL4A允许你在android上运行python脚本.他们的PY4A是他们工具链中的一个步骤,但我对此并不了解.我知道有一些与android apis的集成(你可以使用一些硬件等),但是如何运行程序的限制(它们不是完整的应用程序,没有gui等).这是我从看到其他帖子推断的东西,我没有尝试过,不要在细节上接受我的话.(编辑:实际上似乎有一些能够打包apks和多种方式来创建一个gui,我不知道细节)

Kivy是一个图形框架,支持许多操作系统(Linux,windows,osx,android,ios,可能已经更多).你用它来构建python guis.kivy项目还启动了他们自己的python-for-android项目,该项目提供了为android编译python解释器的方法,并将其打包为实际的android应用程序(包括java api与pyjnius集成等).Kivy与它很好地集成,因此你可以轻松编译一个用于android的python gui应用程序,虽然我不认为这个python-for-android仅限于kivy应用程序.

因此,它们是完全不同的项目,恰好具有相同名称的组件.SL4A用于在android上运行python脚本,我不太了解它的局限性或细节.Kivy是一个python图形框架(不限于android),可以通过自己不同的python-for-android项目编译为完全集成的gui android应用程序.

你可以看到(例如)kivy展示一些简单的kivy功能的例子,或者用kivy制作的简单游戏的例子的扁平珠宝.这些只是一些例子,还有更多可能.


Goz*_*Man 9

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

在Android中嵌入Python(教程系列)

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

它描述了如何在Android应用程序中嵌入Python,使用与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库.

另外,我对各种解决方案的研究结果如下:

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