Python可以用来制作安卓应用吗?

9

我正在学习Python,但不知道它是否有助于我制作Android应用程序。我在某处读到过Python可以制作Android应用程序。但是我想问你,这是一个好的选择还是我们应该始终使用专门用于创建Android应用程序的Andriod Studio。


2
如果你想要头疼的话,当然有很多包装器和有限的帮助可供选择。建议使用Android Studio + Java。 - user1767754
6个回答

12

我是Kivy的核心开发者,其他答案中也提到了它。我认为这是制作Python应用程序的主要选项之一,并且它既有优点又有缺点。

主要技术缺点是(在我看来,也是人们提出的主要问题):

  • 启动速度:如果应用程序尚未运行,则需要短暂时间来启动Python解释器,在旧设备上可能需要几秒钟(或者如果编码某些内容不良,可能需要更长时间,但可以避免),此时会显示加载屏幕。

  • 缺乏本地外观和感觉:Kivy是自己的基于OpenGL的图形框架,因此它看起来与默认的Android应用程序不同(它是可定制的,但仍然很难完美地模拟类似的东西)

  • APK大小:由于必须打包Python解释器,因此最小APK大小约为7MB。

还有其他潜在的缺点,例如当android api发生变化时必须跟上的标准非Java问题,但我认为这些问题较小,在这种情况下,由于您实际上可以直接从Python使用pyjnius调用许多Java API。我在博客文章中谈到了这个问题。另一个问题是,与Java应用程序社区相比,Kivy的社区规模较小,尽管它也非常活跃。

对于某些人来说,其中一个或多个因素是使用Kivy的立即或最终障碍。对于其他人来说,它们不重要或被优点所抵消,因此有人在Android(和iOS)上商业使用Kivy。就个人而言,我最感兴趣的是“我编写了一个简单的脚本”和“我制作了一个大型完整的Android应用程序”之间的广泛空间,因为我认为将简单的事物打包为简单的应用程序应该比目前更容易,但这只是我使用Kivy的原因。


1
能否在Android设备上使用sklearn、signal和其他库来使用kivy处理传感器数据? - Dinesh
1
纯Python库通常应该可以正常工作。具有编译组件的库(例如sklearn)需要编译配方-我们的构建工具(python-for-android)已经包含了许多这样的配方,因此您可以使用例如numpy,但是目前无法以此方式使用sklearn。可能可以使其工作,但是为像这样的复杂模块制作配方也可能很棘手。对于传感器数据,Kivy通过pyjnius在Python中具有对Java API的广泛访问权限。 - inclement
Kivy 处于开发的哪个阶段?我最近在某处读到它仍处于 alpha 开发阶段。 - LabGecko
1
@LabGecko Kivy已经完全发布并积极开发多年。 - inclement

2
Chaquopy(https://chaquo.com/chaquopy/)是 Android 上的 Python 选项。它是 Android Studio 的插件,因此可以同时使用 Android Studio 接口和 Gradle,并使用 Python 代码。
从 Chaquopy 页面上看到:
“通过 Python API,您可以部分或完全使用 Python 编写应用程序。完整的 Android API 和用户界面工具包直接可用。”
有关 Chaquopy 的详细评估在 http://blog.codelv.com/2018/02/a-look-at-chaquopy-python-sdk-for.html 中。
Chaquopy 的创建者还在那篇评论中发表了评论。
我认为在Android上使用Python有许多不同的方法。Chaquopy专注于提供对标准Android API和构建工具的所有功能的完全访问。(例如,您提到的XML布局文件是使用Android Studio的所见即所得编辑器生成的:它不必手动编写。)但是,如果您想要更Pythonic的东西,或者可移植到其他平台,则enaml-native或Kivy是正确的选择。

注意:我尚未亲自测试过这个,因此无法验证其运行效果如何。它相当复杂。

另外:似乎需要许可证密钥才能运行超过5分钟并且需要付款。如果您决定开发开源软件,则有一个开源许可证"将永远免费。"


2

如果问题是,我可以在安卓上运行Python程序吗?那么答案肯定是可以。 但是如果意图是使用Python创建移动应用程序,则请查看尚未支持Python 3的Kivy。 但是除了热爱Python之外,最好还是使用Android Studio来制作本机Android应用程序。


1

Android系统没有自带Python解释器。因此,如果您想分发用Python编写的应用程序,就必须将Python解释器与其捆绑在一起。换句话说,即使是一个“Hello World!”应用程序也会非常庞大。

所以,这是可能的。但不建议这样做。


4
为了提供背景信息,'huge' 大概有7MB大小,尽管这不是全部必需的,也有可能可以更小。 - inclement

1

0

是的,你可以使用以下方法: 1- Kivy 库 2- 在通用机器上安装 Ubuntu 3- 运行 buildozer 将你的 main.py 文件转换成 APK 文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接