干货,Python竟然可以用Kivy编写和打包安卓APP
cac55 2025-03-10 12:45 23 浏览 0 评论
请大家多多点赞,关注和分享
在上一篇文章中,我们介绍了在 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 教程,其中有一个秒表的程序:
其项目结构如下所示:
其中:
- /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位。
虚拟机安装完成:
安装 Buildozer
Ubuntu 20 中自带的 Python3 是 3.8 的版本,我们现在开始正式搭建 Kivy 的打包环境。
首先安装 pip:
sudo apt install python3-pip
然后安装 Buildozer:
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 配置文件:
buildozer init
这会在目录下生成一个名为buildozer.spec的文件,里面申明了这个程序的一些配置信息,因为我们的程序中使用了一个独立的字体文件,所以在这里我们将ttf文件格式,添加到buildozer.spec的配置选项中:
source.include_exts = py,png,jpg,kv,atlas,ttf
在 Linux 测试运行程序
我们先来在 Linux 上测试一下我们的程序是否能够正常运行:
python main.py
可以看到,这个在 Windows 上编写的图形程序在 Linux 上也是正常运行的,而且程序的样式都没有发生变化(PyQt5中原生小控件则会根据平台不同,呈现出不同的样式来)。
打包apk
完成上述步骤之后,我们可以运行 Buildozer 的命令来测试和打包APP。
运行命令:
buildozer -v android debug
等待 Buildozer 进行APP的打包和构建。第一次运行会很漫长,因为它需要下载 Android SDK、Android NDK 之类的工具,耐心等待吧。
然后还有漫长的编译过程:
最后终于打包完成:
这个时间到底有多漫长,看看这篇文章的发布时间就知道了,一言难尽,太不容易了~
最终在 bin 目录下,生成了一个 apk 文件:
我们将其发送到手机上并进行安装。
最后是运行的效果:
可以看到程序内小部件的位置和大小与桌面版的图形界面有一定的出入,这是因为我们这个程序本身就是以桌面端为基准进行编写的,也没有对移动端进行兼容性的适配设置。
不过,其功能还都是一样的。
这样我们就完成了使用 Kivy 编写和打包安卓APP。
相关推荐
- 智能设备触摸屏的功能性测试
-
智能设备触摸屏的功能性测试是确保其能正常、准确、稳定实现各项交互功能的关键环节,涵盖了诸多方面。从基本的单点触控响应,到复杂的多点触控操作;从不同环境下的性能表现,到长期使用后的功能稳定性,每一项测试...
- 屏幕后的秘密!电影频道7.29将播出《玩命直播》
-
1905电影网一个寻常的一天,你收到一个叫“玩命直播”的网站链接,里面是一款真人大冒险直播游戏,游戏规则是:你可以成为观看者或是玩家,观看者付费决定玩家去挑战各种冒险游戏,玩家在完成挑战后获得奖金。你...
- 任天堂 Switch 2:eShop 界面太混乱?这个技巧让你更快找到心仪游戏
-
即便在Switch2平台上,eShop依然存在界面混乱的问题。想要精准搜索特定游戏几乎不可能。不过有个技巧能显著提升浏览效率。随着任天堂Switch2的发布,eShop在技术上实现了现...
- 微信实用技巧大揭秘!这些功能你可能从未发现
-
微信作为一款全民社交软件,早已融入我们生活的方方面面。除了日常聊天、刷朋友圈和支付,微信还隐藏着许多实用功能。今天就带大家解锁几个鲜为人知却超好用的技巧,让你对微信刮目相看!一、聊天输入神器:边写...
- win11系统桌面频繁闪屏怎么解决?
-
1首先按下“ctrl+shift+esc"调出任务管理器,点击左上角的“文件”,选择“运行新任务”2接着勾选“以系统管理权限创建此任务”,然后输入“ms-settings:wheel...
- 探秘我搜启动v1.0.1:桌面图标管理新范式
-
在桌面管理领域,繁杂的图标常让人头疼。今日热帖聚焦的“我搜启动v1.0.1”,以创新之姿,为用户提供高效图标管理方案。从架构设计看,它基于高效的索引算法,深度优化资源调用,极大降低系统资源占用,实...
- 深度技术Win10纯净版打不开设置的问题
-
有一些深度官网的用户在电脑上安装好win10纯净版以后,想要打开设置来优化一下,却发现怎么点击设置按钮都打不开的问题,那如何解决呢?其实,设置打不开可能是因为多种多样原因造成的,接下来深度技术小编就和...
- 微信又有新功能!
-
7月22日,微信能自动发消息了相关话题登上微博热搜榜。微信整了个大新闻,你说话它就能自动把消息发出去了,全程不用点屏幕!这事儿太爽了,以后发微信消息,像打电话那么方便。你打开聊天界面,右边多了个语音输...
- 5种方法让你学会将win10任务栏颜色变全透明
-
win10作为微软经典操作系统,一直以来都备受青睐,但默认的任务栏颜色可能让一些追求个性化的用户不够满意。若想让任务栏颜色变全透明其实也不难,接下来为大家介绍5种超实用方法,有需要的赶紧学起来~方法一...
- 浏览器里重温 XP 系统!开机音一响,瞬间穿越回网吧五毛时代
-
“咚——噔!”当这声熟悉的开机音效在浏览器里响起,无数人的DNA动了——有人在弹幕里刷“爷青回”,有人对着屏幕里的“Bliss”壁纸发呆,这就是网页版WindowsXP带来的...
- 谷歌安卓Linux Terminal解锁桌面体验,实现办公、游戏等操作
-
IT之家7月29日消息,科技媒体AndroidAuthority今天(7月29日)发布博文,深入探索了安卓新版LinuxTerminal应用,认为其通过虚拟化方案,可以让安卓...
- 电脑开机显示器不亮是怎么回事 这有解决方法
-
当您遇到电脑开机但显示器不亮的情况时,确实可能会让人感到焦虑。不过不用担心,这其实是一个相对常见的问题,通常可以通过一些简单的排查步骤来解决。下面,我将一步步指导您如何诊断并尝试修复这一问题。一、检查...
- 新手必看:
-
今日头条发文全流程,从注册到运营一步到位想在今日头条分享自己的观点、展示创作成果?其实操作并不复杂,掌握这套流程,新手也能快速上手。以下是从注册到后续管理的完整步骤,帮你轻松开启创作之旅。一、注册登录...
- 快速更换桌面应用程序图标
-
快速更换桌面应用程序图标文/杨春林为方便操作,我将最新版的DeepSeek应用程序放置在笔记本电脑桌面上。然而,系统自动生成的图标并非我喜欢的样式,如下所示:[系统默认图标图片]我偏爱DeepS...
- 第8讲:快捷“新”技巧【信息化教学实用技巧】
-
八、快捷“新”技巧:Windows快捷键理念:会小“术”而至大“道”。做“陶行知”,先行而后知之。掌握一些极简的信息化教学实用技巧,用于工作与生活之中......1.Win组合键(1)截图截图并打...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)