Android应用程序完全在python中

Android app completely in python

我想开发一个(相当简单的)Android应用程序,通过PlayStore发布。我想在python中完全这样做。然而,网上的研究并没有给我多少启发:大多数评论要么过时了(>1岁,我觉得从那以后可能会更好地集成python),要么他们谈论在android中运行python(例如这里)。

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

  • 在python中完全开发一个应用程序是可行的吗?这样做的工具是什么?(是否推荐Kivy?)
  • 如果是:实现这一点的最佳软件环境是什么?(我尝试使用Android Studio失败,但无法找到在那里运行python代码的方法。)

我对应用程序开发非常陌生,我非常感谢任何在python而不是jave等语言中实现这一点的线索,我还不知道。

非常感谢您的帮助。


回答你的第一个问题:是的,在纯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应用程序,就可以使用公文包将您的Python代码打包为Android应用程序。

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

  • 雨衣
  • 窗户
  • Linux
  • iPhone / iPad
  • 安卓
  • 电视机顶盒
  • TVOS。

您可以使用Beeware套件查看用python编写的本机Android tic-tac-toe应用程序。吉瑟布论

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

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

我希望这有帮助


你可以试一下Beeware——就像他们网站上描述的那样:

Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. One codebase. Multiple apps.

如果你现在想用python来编写android应用程序,另外还有一个优点,那就是如果你最终想在其他列出的平台上做点什么,将来就不需要再学习其他的框架了。

以下是Android应用程序的教程。


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

查奎斯

网址:https://chaquo.com/chaquopy/

它与Android构建系统集成,为所有Android功能提供了一个python API。引用该网站"完整的Android API和用户界面工具包由您直接使用。"

Beeware(TOGA小工具工具包)

https://pybee.org网站/

这提供了一个多目标蒸腾器,支持许多目标,如Android和iOS。它使用一个通用的小部件工具包(TOGA),它映射到主机接口调用。

哪一个?

两者都是活跃的项目,其Github帐户显示了相当数量的近期活动。

像所有的小部件库一样,BeewareToga很好地将基础知识应用到多个平台上。如果您有基本的设计,并且希望扩展到其他平台,那么这对您来说应该很好。

另一方面,chaquopy在将python api映射到android上更为精确。它还允许您在Java中混合,如果您想使用其他资源中的现有代码,则非常有用。如果你有严格的设计目标,并且主要想瞄准Android,这是一个更好的资源。


安卓,Python!

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

Kivy logo

在使用Android Studio来到Java本地Android开发之前,我曾尝试过Kivy。太棒了。这是我能发现的一些优势。

< BR>简单易用

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

< BR>好社区

它有很好的记录,有一个伟大的,活跃的社区。

< BR>跨平台。

您可以使用这个单一的框架为Android、iOS、Windows、Linux甚至Raspberry PI开发它。开放源代码。

< BR>这是一个免费软件

如果你想要商业许可证的话,至少有几个IT的(跨平台)竞争对手希望你支付费用。

< BR>加速图形支持

Kivy在OpenGLES2上构建的图形引擎使其适用于需要快速图形渲染的软件,如游戏。

< BR>< BR>现在进入问题的下一部分,你不能使用AndroidStudioIDE来支持Kivy。下面是建立开发环境的详细指南。