Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kivy和PY4A的区别_Android_Python_Kivy_Sl4a - Fatal编程技术网

Android Kivy和PY4A的区别

Android Kivy和PY4A的区别,android,python,kivy,sl4a,Android,Python,Kivy,Sl4a,我是android开发新手,对Java、C#、Python等都有一些经验。Python是我的最爱,我想用它来编写android应用程序。 然后我看到了这个问题: 投票最多的答案提到了Kivy和ASE(现在是SL4A,包括PY4A) 然而,在谷歌搜索了一番之后,我找不到任何关于Kivy和PY4A之间区别的有用信息。寻找Kivy和SL4A之间的差异也是徒劳的 因此,对于Kivy和PY4A, 有人能简单地解释一下吗: -它们之间有什么相似之处和不同之处? -它们的优点和缺点是什么? -还有其他好的选

我是android开发新手,对Java、C#、Python等都有一些经验。Python是我的最爱,我想用它来编写android应用程序。
然后我看到了这个问题:

投票最多的答案提到了Kivy和ASE(现在是SL4A,包括PY4A) 然而,在谷歌搜索了一番之后,我找不到任何关于
Kivy
PY4A
之间区别的有用信息。寻找
Kivy
SL4A
之间的差异也是徒劳的

因此,对于
Kivy
PY4A

有人能简单地解释一下吗:
-它们之间有什么相似之处和不同之处?
-它们的优点和缺点是什么?
-还有其他好的选择吗

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

SL4A允许您在android上运行python脚本。他们的PY4A是他们工具链中的一步,但我对它知之甚少。我知道有一些与android API的集成(你可以使用一些硬件等),但在如何运行程序方面有限制(它们不是完整的应用程序,没有gui等)。这是我从其他帖子中推断出来的东西,我没有尝试过,不要相信我对细节的承诺。(编辑:实际上,似乎有一些能力打包APK和多种方法来创建gui,我不知道细节)

Kivy是一个图形框架,支持多种操作系统(linux、windows、osx、android、ios,可能已经有更多)。您可以使用它来构建python GUI。kivy项目还启动了自己的python for android项目,该项目提供了编译android python解释器并将其打包为实际android应用程序的方法(包括java api与pyjnius的集成等)。Kivy与它集成得很好,因此您可以轻松地为android编译python gui应用程序,尽管我不认为android版python仅限于Kivy应用程序

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


您可以看到(例如)一些简单的kivy功能的示例,或者kivy制作的简单游戏的示例。这些只是例子,还有很多可能。

你试过QPython吗?这是一个新的python for android实例,它提供了更多功能。

我发现这非常有用(而且是最近的):

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

它描述了如何在Android应用程序中嵌入Python,使用适用于Android的Kivy相关Python,而不是Kivy本身(据我所知,Kivy和适用于Android的Python文档中都没有真正描述),这在各种场景中都很有用(例如,现有Java应用程序、直接使用本机GUI等)

由于Kivy的Android Python比SL4A(ASE)的Py4A开发得更为积极,在我看来,这是一条可行之路

(我认为回答这个问题也非常相关,而且可能更合适,但回答这个问题需要比我现在拥有更多的声誉。)

说到最初的问题:我所看到的Kivy的Python for Android和SL4A(ASE)的Py4A之间最相关的区别是后者今天仍然作为“alpha质量”提供,而前者似乎更为活跃。 当然,如果你把Kivy作为一个整体,它是一个跨平台的GUI库

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

  • 谷歌的Py4A+SL4A(ASE):已使用,但阿尔法质量,未积极开发
  • Kivy
    • 为Android提供Python,从Java调用Python代码
    • 提供Pyjnius,从python调用Java代码
    • 似乎正在积极发展
    • 我在上面链接了一个嵌入Java Android应用程序的教程
    • 如果感兴趣,跨平台GUI(Kivy本身)
  • QPython
    • 主要是在Android上启动python脚本的交互式环境
    • 基于Py4A,但Pyjnius(见上文)据说是可用的
    • 嵌入Java应用程序是可行的,但有一定的局限性:Python作业必须有目的地启动,并且从标准输出中收集结果;我认为,这意味着在某些情况下可能需要更多的分离
  • python.org:完全不提Android

除了这里的答案之外,我还要添加原始Py4A的分支,它似乎正在积极开发:


我不能保证它的质量和易用性。有.apk需要安装,所以看起来相当简单

“Kivy-开源Python库,用于快速开发利用创新用户界面的应用程序,如多点触控应用程序。”vs“Android脚本层(SL4A)通过允许您直接在Android设备上编辑和执行脚本和交互式解释器,将脚本语言引入Android。”我找不到两者之间的任何共同点…您可以在SL4A、本机和网络视图上使用GUI。kivy的家伙们在cons和诸如此类的场合歪曲了SL4A,所以你不得不期待一些混乱。对于这个错误,很抱歉,我的误解来自于阅读SL4A文档,其中主要讨论了脚本的可能性。