干货,Python竟然可以用Kivy编写和打包安卓APP

干货,Python竟然可以用Kivy编写和打包安卓APPKivy 同时也宣称 同一份代码 可在 Linux Windows OS X Android iOS 和 Raspberry Pi 上运行 这个时间到底有多漫长 看看这篇文章的发布时间就知道了 一言难尽 太不容易了

欢迎大家来到IT世界,在知识的湖畔探索吧!

请大家多多点赞,关注和分享


在上一篇文章中,我们介绍了在 Python 中使用 BeeWare 框架编写图形程序并将其打包为安卓的apk文件程序。

爆强!直接把 Python 编写的图形程序打包为安卓 APP

然而,使用 Python 编写移动平台APP 的主流选择(使用 Python 写移动端APP这行为本身就是个非主流),还是使用 Kivy 这个框架。

相比于 BeeWare,Kivy 提供的组件更丰富,与操作系统原生API的交互更加便捷,性能也更优。

Kivy 同时也宣称「同一份代码,可在 Linux、Windows、OS X、Android、iOS 和 Raspberry Pi 上运行」。

但是,Kivy 在移动端的打包,还是不如 BeeWare 方便。

今天,咱们就来试着把 Kivy 写的图形程序实现在安卓端的运行,体验一下 Kivy 的打包。

州的先生之前在「觅道文档」写过一部分的 Kivy 教程,其中有一个秒表的程序:

干货,Python竟然可以用Kivy编写和打包安卓APP



欢迎大家来到IT世界,在知识的湖畔探索吧!

其项目结构如下所示:

干货,Python竟然可以用Kivy编写和打包安卓APP

其中:

  • /font文件夹用于放置中文字体文件。在其中,我们放置了思源黑体作为图形的中文显示字体。
  • /imgs文件夹用于放置静态图片文件,在其中,我们放置了两个方向指示图片。
  • /kv文件夹用于存放 Kivy 界面的设计模板。
  • main.kv是主程序的界面设计模板。
  • main.py是主程序的 Python 代码。

咱们就把这个程序打包为安卓端的APP。

安装虚拟机

要将 Kivy 编写的图形程序打包为安卓APP,需要使用到 Kivy 编写的 python-for-android 库。Kivy 官方提供了一个自动化构建工具——Buildozer,但是这个工具目前只适用于 Linux。

如果你的电脑是 Windows 10,那么可以通过 WSL2 系统进行 Linux 进行安装,如果是其他的版本,可以使用虚拟机进行安装。如果是 Linux,那就直接安装吧。

在这里,州的先生选择的是虚拟机进行操作,虚拟机的环境为 Virtual Box + Ubuntu 20.04.2.0 LTS 64位。

干货,Python竟然可以用Kivy编写和打包安卓APP

虚拟机安装完成:

干货,Python竟然可以用Kivy编写和打包安卓APP

安装 Buildozer

Ubuntu 20 中自带的 Python3 是 3.8 的版本,我们现在开始正式搭建 Kivy 的打包环境。

首先安装 pip:

sudo apt install python3-pip

欢迎大家来到IT世界,在知识的湖畔探索吧!

然后安装 Buildozer:

欢迎大家来到IT世界,在知识的湖畔探索吧!pip3 install buildozer

接着安装 Buildozer 的依赖项

sudo apt update sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev pip3 install --user --upgrade Cython==0.29.19 virtualenv # the --user should be removed if you do this in a venv # add the following line at the end of your ~/.bashrc file export PATH=$PATH:~/.local/bin/

初始化 Buildozer

在完成上述依赖项的安装之后,我们将程序代码复制到虚拟机中(共享文件夹或直接拖进去都行),打开命令行终端,执行如下命令以初始化一个 Buildozer 配置文件:

欢迎大家来到IT世界,在知识的湖畔探索吧!buildozer init

这会在目录下生成一个名为buildozer.spec的文件,里面申明了这个程序的一些配置信息,因为我们的程序中使用了一个独立的字体文件,所以在这里我们将ttf文件格式,添加到buildozer.spec的配置选项中:

source.include_exts = py,png,jpg,kv,atlas,ttf
干货,Python竟然可以用Kivy编写和打包安卓APP

在 Linux 测试运行程序

我们先来在 Linux 上测试一下我们的程序是否能够正常运行:

欢迎大家来到IT世界,在知识的湖畔探索吧!python main.py

可以看到,这个在 Windows 上编写的图形程序在 Linux 上也是正常运行的,而且程序的样式都没有发生变化(PyQt5中原生小控件则会根据平台不同,呈现出不同的样式来)。

干货,Python竟然可以用Kivy编写和打包安卓APP

打包apk

完成上述步骤之后,我们可以运行 Buildozer 的命令来测试和打包APP。

运行命令:

buildozer -v android debug

等待 Buildozer 进行APP的打包和构建。第一次运行会很漫长,因为它需要下载 Android SDK、Android NDK 之类的工具,耐心等待吧。

干货,Python竟然可以用Kivy编写和打包安卓APP

然后还有漫长的编译过程:

干货,Python竟然可以用Kivy编写和打包安卓APP

最后终于打包完成:

干货,Python竟然可以用Kivy编写和打包安卓APP

这个时间到底有多漫长,看看这篇文章的发布时间就知道了,一言难尽,太不容易了~

最终在 bin 目录下,生成了一个 apk 文件:

干货,Python竟然可以用Kivy编写和打包安卓APP

我们将其发送到手机上并进行安装。

干货,Python竟然可以用Kivy编写和打包安卓APP

最后是运行的效果:

干货,Python竟然可以用Kivy编写和打包安卓APP

可以看到程序内小部件的位置和大小与桌面版的图形界面有一定的出入,这是因为我们这个程序本身就是以桌面端为基准进行编写的,也没有对移动端进行兼容性的适配设置。

不过,其功能还都是一样的。

这样我们就完成了使用 Kivy 编写和打包安卓APP。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/111866.html

(0)
上一篇 7小时前
下一篇 7小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信