如何用python完全制作Android应用程序?[关闭]


104

我想开发一个(相当简单)的Android应用程序,可通过Play商店进行分发。我想在python中完全这样做。但是,在线研究并没有启发我:大多数评论要么已经过时(> 1岁,并且我认为从那时起可能会更好地集成python),要么他们谈论在android中运行python(例如here)。

因此,我正在寻找有关以下问题的信息:

  • 用python完全开发App是否可行-这样做的工具是什么?(例如,推荐Kivy吗?)
  • 如果是这样:最佳软件环境是什么?(我尝试使用Android Studio失败,但是找不到在其中运行python代码的方法。)

我对应用程序开发非常陌生,非常感谢在python中而不是在Jave等中进行此操作的所有线索,我尚不知道。

非常感谢您的提前帮助。


过去,我使用kivy和他们的buildozer程序。他们在这里有文档kivy.org/docs/guide/packaging-android.html
es

在本地,您必须使用Java或Kotlin,但是正如其他人指出的那样,可以使用PyMob或Kivy之类的可与python一起使用的第三方“应用程序构建器”或框架。
多米尼克·施密特

6
我创建了一个使用Kivy完全用Python开发的Android游戏。可在Google Play上找到名为CoinTex的信息:play.google.com/store/apps/details ? id=coin.tex.cointexreactfast 。可以在GitHub上找到游戏的源代码:github.com/ahmedfgad/CoinTex。我还写了本书,该书将在今年出版,以使用Python构建Android应用程序。它的标题为“在Amazon上使用Kivy使用Android Studio使用Kivy构建Android应用程序:使用Pyjnius,Plyer和Buildozer Ahmed Fawzy Gad”在Amazon:amazon.com/dp/1484250303上可用。
艾哈迈德·加德

1
无法发布答案,但这似乎是一个解决方案将展示不同的技术,包括使用Necessitas Qt端口和基于Py4A / SL4A的方法基于PySide的QML GUI,这些方法可以与Android的WebKit结合使用-使用Python网络框架。
巴斯基(Basj)

Answers:


111

回答您的第一个问题:是的,用纯python开发一个android应用程序是可行的,为了实现这一目标,我建议您使用BeeWare,它只是一套python工具,可以很好地协同工作,使您能够开发python中的平台本机应用程序。

结帐这个视频由BeeWare的创造者,完美解释并演示了它的应用

这个怎么运作

Android的首选实现语言是Java-因此,如果您想用Python编写Android应用程序,则需要一种在Java虚拟机上运行Python代码的方法。这就是VOC所做的。VOC是一个编译器-它获取Python源代码,将其编译为CPython字节码,然后将该字节码转换为与Java兼容的字节码。最终结果是将您的Python源代码文件直接编译为Java .class文件,然后可以将其打包到Android应用程序中。

VOC还允许您像访问Python对象一样访问本机Java对象,使用Python类实现Java接口,以及使用Python类实现Java类的子类。使用此功能,您可以直接针对本机Android API编写Android应用程序。

编写本机Android应用程序后,您可以使用“ 公文包”将Python代码打包为Android应用程序。

公文包是用于将Python项目转换为独立的本机应用程序的工具。您可以将项目打包为:

  • 苹果电脑
  • 视窗
  • 的Linux
  • iPhone / iPad
  • 安卓系统
  • 苹果电视
  • 电视操作系统。

您可以使用BeeWare套件检查用Python编写的本机Android Tic Tac Toe应用程序。在GitHub上

除BeeWare工具外,您还需要安装JDK和Android SDK来测试您的应用程序的运行。

并回答您的第二个问题:好的环境可以是任何您喜欢的东西,无论是文本编辑器,命令行还是IDE,如果您正在寻找好的python IDE,我建议您尝试Pycharm,它具有一个免费的社区版本,由于它是同一家公司生产的,因此它的环境与android studio类似。

我希望这是有帮助的


1
只是我,还是VOC被遗弃了?
基金莫妮卡的诉讼

2
这是一个死胡同(上次我检查出来的时间是:2018年12月)。这个过于复杂的解决方案中的一个或多个组件不再起作用,或者无法保持最新​​状态。
贝里·察卡拉

2
只是对2019年的更新,但Kotlin现在是Android开发的首选语言。
DaveTheMinion

3
@Basj我想说Beeware肯定会存在一段时间,因为只要查看一下它的GitHub帐户,您就会发现它正在积极开发,如果您转到Gitter频道,则可以总是会影响到整个团队,尤其是创作者Russell博士(freakyboy),并且社区非常友好,而且他们的官方帐户上还有一条最近的推文(2019年9月26日)推文宣布他们获得了Python的教育补助金软件基础。我认为这值得您
度过

1
在任何情况下,BeeWare在此阶段似乎都不支持Android(Java)。
Mark Anderson

15

您可以尝试BeeWare-如其网站上所述:

使用Python编写应用程序,然后使用丰富的本机用户界面在iOS,Android,Windows,MacOS,Linux,Web和tvOS上发布它们。一个代码库。多个应用程序。

提供您想要现在就用Python编写Android Apps的优点,并且具有以下优点:如果您最终也想在其他列出的平台上做某事,则将来无需学习其他框架。

这是Android Apps教程


4
您是否使用BeeWare自己构建了一个应用程序?
贝里·察卡拉

11

Android上有两个主要的python应用程序竞争者

Chaquopy

https://chaquo.com/chaquopy/

它与Android构建系统集成,为所有android功能提供了Python API。引用网站“完整的Android API和用户界面工具包直接供您使用”。

Beeware(Toga小部件工具包)

https://pybee.org/

这提供了一个多目标编译器,支持许多目标,例如Android和iOS。它使用映射到主机接口调用的通用窗口小部件工具箱(toga)。

哪一个?

两者都是活跃项目,它们的github帐户显示了大量近期活动。

像所有小部件库一样,Beeware Toga也非常适合将基础知识扩展到多个平台。如果您具有基本的设计,并且希望扩展到其他平台,那么这应该对您来说很好。

另一方面,Chaquopy在将python API映射到Android方面更加精确。它还允许您混合使用Java,如果要使用其他资源中的现有代码,则很有用。如果您有严格的设计目标,并且主要想针对Android,那么这是一个更好的资源。


10

Android,Python!

当我在您的问题中同时看到这两个关键字时,我最先想到的是Kivy

猕猴桃徽标

在使用Android Studio进行Java原生Android开发之前,我曾尝试过Kivy。太棒了。这是我可以发现的一些优点。


使用简单

有了python基础知识,您就可以轻松学习它。


良好的社区

它有据可查,拥有一个活跃的社区。


跨平台。

您可以使用此单一框架为Android,iOS,Windows,Linux甚至Raspberry Pi开发东西。开源。


它是一个免费软件

如果您想要商业许可证,那么至少(跨平台)竞争者都希望您付费。


加速图形支持

Kivy的图形引擎基于OpenGL ES 2构建,使其适用于需要快速图形渲染的软件,例如游戏。



现在进入问题的下一部分,您不能将Android Studio IDE用于Kivy。是设置开发环境的详细指南。


4
Windows支持落后于生产标准(甚至爱好者标准)。另外,由于缺乏RTL支持,世界上一半的地区无法使用它。
贝里·察卡拉

您为什么离开Kivy并将其更改为本地开发工具?您建议它有一些缺点。
igoemon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.