开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 146|回复: 20

用 Python 编写安卓 APK ,简单几步搞定

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-3 06:09:51 | 显示全部楼层 |阅读模式
原文:https://mp.weixin.qq.com/s/zxb2stFkFPeUasuCi6b11A
如果想使用 Python 语言编写图形界面程序,那么有不少的框架可以提供支持,比如 Tkinter、Qt for Python、WxPython等等。
不过这些框架都是只能创建桌面图形界面程序,比如 Windows、Linux 和 macOS。
如果我们想要创建 IOS 或 Android 等平台的移动应用APP,它们就无能为力了。
那么 Python 能不能写移动应用APP呢?实际上是可以的。
据了解,Kivy 和 BeeWare 都宣称「一次编写,处处部署」,基于这些个框架编写的图形界面程序,都能够打包为全平台的应用程序,比如:Windows、Linux、macOS、Android、IOS。
今天,咱们就尝试使用一下 BeeWare 这个框架,编写一个图形界面程序,然后打包为一个安卓APP。
开始吧!
<hr/>BeeWare 是一个基于 Python 构建的跨平台应用开发框架,其宣传「Write once. Deploy everywhere.」



能够让 Python 编写的图形程序在 iOS, Android, Windows, MacOS, Linux, Web, 和 tvOS 上运行,看起来是很强大的。
# 安装

根据 BeeWare 的文档说明,在 Windows 上使用,我们首先需要安装 Git 和 WiX Toolset,根据给出的网址,下载安装即可。
然后,我们使用 pip 工具安装 BeeWare:
pip install briefcase# 创建应用

BeeWare 安装完成之后,我们就可以通过briefcase命令在命令行终端进行 BeeWare 应用的管理,比如新建、运行、构建、打包等等。
我们先使用命令briefcase new创建一个应用。
命令输入之后,会让我们输入「应用的正式名称」、「应用程序名称」、「域名」、「项目名称」等等信息,在这里出于演示,我们统统使用默认值。



输入完成之后,BeeWare会开始创建应用,创建完成之后,会有如下提示:



同时目录下多出了一个与应用程序名称同名的目录:



我们的程序的主要代码都将在 app.py 里面编写,默认 app.py 文件内已经有一个demo代码,我们可以直接运行项目:
briefcase dev在命令行输入上述命令,会生成一个如下图所示的窗口:



# 打包为Windows程序

出于演示,在这里不对 BeeWare 的图形界面控件进行过多的演示,直接使用了它的demo。
如果我们需要将编写好的图形程序打包成 Windows桌面程序,那么可以执行下面的步骤:
首先,创建应用的脚手架:
briefcase create运行命令,将会生成一些预配置文件,然后下载依赖的包。
完成之后,项目目录下会生成一个 Windows 的目录,如下图所示:



然后,构建应用:
briefcase build接着,运行构建的应用:
briefcase run最后,打包应用:
briefcase package打包完成后,./Windows 目录下会生成一个 .msi 的二进制安装文件:



我们双击运行它,会出现常见的Windows程序的安装界面:





安装完成之后,可以在Windows的应用程序列表中看到它:



点击它,就会打开我们之前用命令运行的程序界面;



# 打包为安卓APP

如果我们要将应用打包为安卓APP,过程也是类似的。
首先,创建应用的安卓脚手架:
briefcase create android接着,构建安卓应用:
briefcase build android



然后,我们运行一下构建好的安卓应用:
briefcase run android在这里会让我们选择设备,可以选择 BeeWare 提供的安卓虚拟机或者是在电脑上连接自己的手机,在这里,我们选择安卓虚拟机:



最后,打包安卓应用:
briefcase package android打包完成之后,我们可以在 .\android\gradle\Hello World\app\build\outputs 找到打包好的文件:



BeeWare 提供了两种打包好的文件,一种是用于上架Google Play 的.aab 格式文件,



一种是用于调试的 .apk 文件:



apk 文件咱们的手机可以直接安装,所以就用QQ把它传到手机上:



QQ内可以识别安装:



安装它:



安装完成:



打开应用:



显示程序内容:



这样,我们就把Python编写的图形程序直接打包为了安卓APP。
IOS的打包流程也是类似,大家可以参考官网文档尝试一下。
有问题欢迎留言交流讨论~
絮叨一下

我在知乎上写过很多的 Python 相关文章,其中包括 Python 实用工具,Python 高效技巧,PyCharm 使用技巧,很高兴得到了很多知乎朋友的认可和支持。
在他们的鼓励之下,我将过往文章分门别类整理成三本 PDF 电子书
PyCharm 中文指南
关键词:PyCharm,高效,实用,插件,系统全面
《PyCharm 中文指南》使用 300 多张 GIF 动态图的形式,详细讲解了最贴合实际开发的 105个 PyCharm 高效使用技巧,内容通俗易懂,适合所有 Python 开发者。
目前是 2.0 版本,由于 PyCharm 在不同系统下的快捷键有所差异,因此为了照顾不同系统的同学,我特意将电子书分成了 Mac 和 Win 两个版本。
在线体验地址:https://pycharm.iswbm.com



Python 黑魔法指南
关键词:Python,冷门,高效,实用。
《Python黑魔法指南》目前迎来了 v3.0 的版本,囊集了 100 多个开发小技巧,非常适合在闲时进行碎片阅读。
在线体验地址:https://magic.iswbm.com



Python 中文指南
关键词:Python,入门,基础,系统全面
学 Python 最好的学习资料永远是 Python 官方文档,可惜现在的官方文档大都是英文,虽然有中文的翻译版了,但是进度实在堪忧。
为了照顾英文不好的同学,我自己写了一份 面向零基础的朋友 的在线 Python 文档 -- 《Python中文指南》
在线体验地址:https://python.iswbm.com



有帮助的话,记得帮我 @王炳明 点个赞哟~
回复

使用道具 举报

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-3-3 06:10:06 | 显示全部楼层
看起来很有趣,试一试[酷]
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-3 06:10:50 | 显示全部楼层
这么6的吗,我来试试
回复

使用道具 举报

2

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-3-3 06:11:15 | 显示全部楼层
这个安卓打包出来的空包有点大啊[飙泪笑]
回复

使用道具 举报

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-3-3 06:11:45 | 显示全部楼层
好东西,虽然一个 hello world 就40MB+ 还是有亿点压力
回复

使用道具 举报

1

主题

4

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-3-3 06:12:37 | 显示全部楼层
是不是里面打包了python虚拟机,所以很大?
回复

使用道具 举报

2

主题

4

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-3 06:12:52 | 显示全部楼层
应该跟打包的环境有关系,如果环境是干净的,应该不会那么大[笑哭]
回复

使用道具 举报

2

主题

4

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-3 06:13:49 | 显示全部楼层
BeeWare打包apk太大了;Kivy 必须在linux下才能打包apk,耗时还超级忍不了......[流泪]
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-3 06:14:06 | 显示全部楼层
好家伙,40多M的Hello world [doge]
回复

使用道具 举报

1

主题

4

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-3 06:14:28 | 显示全部楼层
先赞为敬,但是嘛……这东西又毛用?一个hello world就小50m[捂脸][捂脸][捂脸][捂脸]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-20 04:38 , Processed in 0.388672 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表