我是Android开发的新手,我有过Java,C#,Python等方面的经验.Python是我最喜欢的,我想用它编写Android应用程序。
然后我看到了这个问题:
Is there a way to run Python on Android?
投票最多的答案提到Kivy
和ASE
(现在为SL4A
并包含PY4A
)。
但是,经过一些谷歌搜索后,我无法找到有关Kivy
和PY4A
之间差异的任何有用信息。搜索Kivy
和SL4A
之间的差异也是徒劳的。
因此,至于Kivy
和PY4A
,
有人可以用简单的方式解释:
- 它们之间有什么相似之处和区别?
- 他们的好坏部分是什么?
- 还有其他好的选择吗?
答案 0 :(得分: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 showcase以获取一些简单的kivy功能的示例,或flat jewels作为在kivy中制作的简单游戏的示例。这些只是一些例子,还有很多可能。
答案 1 :(得分: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更加活跃,因此在我看来还有很长的路要走。
(我认为这对Is there a way to run Python on Android?来说也是非常相关的,而且可能更合适,但回答需要比现在更多的声誉。)
至于原始问题的要点:我在Kivy的Python-for-Android和SL4A(ASE)的Py4A之间看到的最相关的差异是,后者今天仍然被提供为“alpha质量”,而前者似乎变得更加活跃。 当然,如果你把Kivy作为一个整体,它是一个跨平台的GUI库。
另外,我对各种解决方案的研究结果:
答案 2 :(得分:1)
你试过QPython吗?这是一个新的Android实例python,它提供了更多的功能。
答案 3 :(得分:0)
除了这里的答案之外,我还要添加原始Py4A的分支,它似乎是积极开发的:https://github.com/kuri65536/sl4a
我无法保证质量或易用性。有.apks安装所以它似乎相当简单。