Android应用程序完全在python中

Ivo*_*Ivo 68 python android

我想开发一个(相当简单的)Android应用程序,通过Play商店分发.我想在python中完全这样做.然而,在线研究还没有让我明白:大多数评论要么过时(> 1岁,我觉得从那时起可能有更好的python集成)或者他们谈论在android中运行python(例如这里).

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

  • 在python中完全开发App是否可行 - 这样做的工具是什么?(例如Kivy值得推荐吗?)
  • 如果是这样的话:实现这个的最佳软件环境是什么?(我尝试使用Android Studio但未能找到在那里运行python代码的方法,但未成功.)

我对应用程序开发很陌生,并且非常感谢在python中执行此操作的任何线索,而不是在Jave等中,我还不知道.

非常感谢你提前帮助.

mar*_*ttu 68

回答你的第一个问题:是的,用纯python开发一个android应用程序是可行的,为了达到这个目的,我建议你使用BeeWare,它只是一套python工具,可以很好地协同工作,它们可以让你开发python中的平台本机应用程序.

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

这个怎么运作

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

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

一旦编写了原生Android应用程序,就可以使用Briefcase将Python代码打包为Android应用程序.

Briefcase是一个用于将Python项目转换为独立本机应用程序的工具.您可以打包项目:

  • 苹果电脑
  • 视窗
  • Linux的
  • iPhone/iPad版
  • Android的
  • AppleTV的
  • tvOS.

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

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

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

我希望这是有帮助的

  • @Basj 我想说 Beeware 肯定会存在一段时间,因为只要看一下它的 GitHub 帐户,你就会发现它正在积极开发,如果你转到 Gitter 频道,你可以总是能接触到整个团队,尤其是创建者 Russell 博士(freakyboy),社区相当友好,而且他们的官方账号最近(2019 年 9 月 26 日)发布了一条推文,宣布他们获得了 Python 的教育补助金软件基础。我认为这值得你花时间,特别是如果你喜欢 python 作为一种语言 (3认同)
  • 是我一个人,还是VOC被抛弃了? (2认同)
  • 这是一个死胡同(上次我检查出来是:2018年12月)。这个过于复杂的解决方案中的一个或多个组件不再起作用,或者无法保持最新​​状态。 (2认同)
  • 这只是2019年的更新,但Kotlin现在是Android开发的首选语言。 (2认同)
  • 无论如何,BeeWare 现阶段似乎不支持 Android (Java)。 (2认同)
  • 嗨@SearchImtiyaz,来自 toga 文档,您可以使用 [ImageView](https://toga.readthedocs.io/en/latest/reference/api/widgets/imageview.html) 您还可以查看完整的 [Toga 参考](https ://toga.readthedocs.io/en/latest/reference/api/index.html) 查看可用小部件列表 (2认同)

Ber*_*yle 14

安卓,Python!

当我在你的问题中看到这两个关键词时,首先想到的是Kivy

Kivy 标志

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


使用简单

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


好社区

它有据可查,并拥有一个伟大而活跃的社区。


跨平台。

你可以使用这个单一的框架为 Android、iOS、Windows、Linux 甚至 Raspberry Pi 开发东西。开源。


这是一个免费软件

如果您想要商业许可,至少有少数(跨平台)竞争对手希望您支付费用。


加速图形支持

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



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

  • Windows 支持远远落后于生产标准(甚至爱好者标准)。此外,由于缺乏 RTL 支持,世界上有一半的人无法使用它。 (6认同)
  • 为什么离开 Kivy 改用原生开发工具?您认为它有一些缺点。 (2认同)

E. *_*don 13

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

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

现在,您希望自己想要使用Python编写Android应用程序,并且如果您最终还希望在其他列出的平台上执行某些操作,那么您将不需要再学习另一个框架.

这是Android应用程序教程.

  • 您是否使用BeeWare自己构建了一个应用程序? (3认同)

har*_*vey 9

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,那么这是一个更好的资源.