BeeWare创建APK应用初体验
前言
最近在研究脱机执行APP自动化,了解到了BeeWare工具集,故此记录一下
官方文档:https://docs.beeware.org/zh-cn/latest/tutorial/tutorial-1.html
环境安装
安装 BeeWare 工具
pip install briefcase toga
安装 pipreqs(自动检测项目依赖,可选项)
pip install pipreqs
安装Git
下载地址:https://git-scm.com/downloads
注意:以上三个依赖是必须的,后续打包成APK的时候需要用到AndroidStudio以及JDK,但是这两个在进行打包的时候会自动安装,故此在此不必理会。
一、第一个应用:HelloWorld
1、创建应用
运行 new会创建一个应用,我们可以在这个过程定义一些信息,如APP名称之类的,唯一注意的是GUI Framework
默认选用toga
即可。当然首次运行可以直接使用默认,这些后续在pyproject.toml
均可以修改。
命令行输入:
python -m briefcase new
运行上述代码后会创建一个BeeWare项目,项目架构(信息全选择默认)如下:
应用代码定义及修改位置位于app.py,如下是app.py的代码,在该段代码中,实现了获取输入框内用,调用button按键,并弹窗提示的功能。
"""
My first application
"""import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROWclass HelloWorld(toga.App):def startup(self):"""Construct and show the Toga application.Usually, you would add your application to a main content box.We then create a main window (with a name matching the app), andshow the main window."""main_box = toga.Box(style=Pack(direction=COLUMN))#定义一个标签和一个输入框name_label = toga.Label('Your name: ',style=Pack(padding=(0, 5)))self.name_input = toga.TextInput(style=Pack(flex=1))name_box = toga.Box(style=Pack(direction=ROW, padding=5))name_box.add(name_label)name_box.add(self.name_input)#定义一个按钮调用say_hello方法,传递参数为widgetbutton = toga.Button('Say Hello!',on_press=self.say_hello,style=Pack(padding=5))#主界面添加标签和输入框和按钮main_box.add(name_box)main_box.add(button)self.main_window = toga.MainWindow(title=self.formal_name)self.main_window.content = main_boxself.main_window.show()async def say_hello(self, widget):await self.main_window.dialog(toga.InfoDialog(f"Hello, {self.name_input.value}","Hi there!",))def main():return HelloWorld()
2、运行应用代码
命令行输入:
python -m briefcase dev
执行代码后会弹出一个应用窗口,这个就是我们的第一个应用:Hello World
输入框输入名字后,点击Say Hello后如下:
3、打包应用为APK
命令行输入:
python -m briefcase create android
上述代码为调用briefcase进行脚手架的创建,作用是生成Android项目结构,Android可用格式,在briefcase的工作流程中,必须先创建脚手架才能打包成Android应用。
首次调用创建脚手架的时候,briefcase会自动下载需要的JDK版本以及AndroidStudio版本,安装完成后会弹出协议,阅读完成后接受即可正常使用。
命令行输入:
python -m briefcase build android
上述代码为调用birefcase来进行apk的构建,同样的,第一次调用同时需要下载安装依赖,此项为birefcase自动调用脚手架模板,即上一步创建的脚手架,来进行APK的构建,构建完成后输出APK的路径。
4、使用模拟器安装APK调试
可以看到,在模拟器上可以正常使用该APK文件,操作与在windows上的界面操作类似
二、结语
在BeeWare上,我们可以方便的构造一个APK应用,我们不需要关心Android的代码是怎么样的,我们只需要关注Python的代码如何实现即可。在UI上,对我而言做工具类的APK,这个刚好满足我,不用过度关心UI的展示,默认显示即可。
BeeWare是一个强大的应用创建工具,不仅可以打包APK,也可以打包成windows应用。在使用上可以减少新的编程语言的学习成本。