BeeWare开发手机App
BeeWare开发
基础使用方法
前置:python编译器、pycharm软件,还有一个会思考的大脑
本节参考:移动APP开发指导Python+Beeware
项目创建
- 进入任意文件夹(非中文路径),打开cmd面板 || 或者使用pycharm新建项目,打开终端。
- 使用
pip
命令安装相关包
使用
python -m pip install beeware
安装一系列 BeeWare 生态系统中的核心组件。
-
等待下载完毕,在命令行中输入
briefcase new
,开始创建BeeWare项目模板。运行成功后,会要求输入项目名称、包名等信息,具体如下:
Formal Name [Hello World]: PunchIn # app名称(显示在软件标题的名称) App Name [punchin]: PunchIn # 机器可读名称(需符合PEP508规范) Bundle Identifier [com.example]: com.romcere # 域名/唯一标识,用于区分来自不同开发者或组织的应用程序 Project Name [打卡]: PunchIn # 用于标识整个项目的名称 Description [My first application]: 提供一个用于打卡、记账等为生活便利的软件。 # 应用程序的简短描述(不想写,可以直接回车跳过) Author [Jane Developer]: Romcere # 开发者名称 Author' s Email [romcere@romcere.com]: ttianhuoddh@gmail.com # 电子邮箱(可跳过) Application URL [https://romcere.com/PunchIn]: https://romcere.top # 为该程序提供一个网页URL(可跳过) Project License [1]: 2 # 许可协议(直接选2即可) GUI Framework [1]: 1 # 图像用户界面框架(开发跨平台应用选择1)
依次选择完上述内容后,会提示你
cd
到自动创建好的文件夹内,我们在终端中依次输入两行命令:
cd PunchIn # cd到自动创建好的文件夹内 briefcase dev # 运行应用程序的开发模式
等待一段时间后,出现如下界面,程序运行成功:
项目打包
前置:电脑中需安装Android Studio 和 SDK、Java JDK,并配置好环境变量
-
现在项目太空,我们在app.py中写点代码让其丰富起来。
我们依次打开文件:PunchIn > src > PunchIn > app.py:
- 根据官网提供的示例模板,使app.py的代码看起来像这样:
class PunchIn(toga.App):
def startup(self):
main_box = toga.Box(style=Pack(direction=COLUMN))
name_label = toga.Label(
"你的名字: ",
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)
button = toga.Button(
"你好!",
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_box
self.main_window.show()
def say_hello(self, widget):
print(f"Hello, {self.name_input.value}")
def main():
return PunchIn()
- 完成之后,我们在终端中输入
briefcase dev
运行,出现如下界面:
- 完成上述内容后,我们就可以着手打包成apk了,依次输入下列命令:
briefcase create android # 创建Android项目
briefcase build android # 构建 Android 应用
briefcase run android # 运行 Android 应用
运行 Android 应用后,会让你选择创建或选择现有Android模拟器:
这里选择4创建一个新的模拟器,输入一个模拟器名称 PunchInPhone
,等待运行完后,出现如下界面,则成功:
- 如果想使用apk文件,到模拟器中使用,根据此路径寻找
<PunchIn_APP>/PuchIn/android/gradle/app/build/outputs/apk
:
-
如果你更新了源代码,希望重新生成apk,可以使用下述命令执行:
briefcase build android --clean # 清理项目 briefcase build android # 重新构建apk
其他
####pyproject.toml
该文件描述了如何打包发布应用程序,打开后就会看到刚才提供给 Briefcase 的配置详细信息
icon图标配置项
在该文件中 [tool.briefcase]
下添加 icon
配置项,可配置app图标:
在配置图标时会遇到的坑:
-
icon
配置项最后的路径必须是文件名前缀,而不是文件夹。此前缀将与文件大小和变体修饰符相结合,以生成要使用的图标文件列表。
-
使用以下命令重新构建/更新apk文件
briefcase update android --update-resources # 更新资源文件
briefcase build android --update-resources # 更新apk文件
-
当你更换错误的图标文件后,原图标不会被更换(除非删除
build
文件夹会恢复默认图标),这是因为图标被缓存了(未证实) -
使用
splash_background_color = "#D3E6F5"
改变启动画面背景颜色时,需删除build
文件夹重新构建build
或使用briefcase create android
覆盖build
文件夹 -
app图标和启动界面图标,必须使用指定后缀(和适配的图标大小)
以下为测试后可用后缀,更后缀的
324
表示图标大小,需和Android手机的规格适配
附言
后续界面开发需学习Toga应用,本人在了解完后,发现其制作的界面较为简陋(可能是我的技术不到位),于是转变其他方向。
因为本人只想做一款打卡、记账等功能集成的软件,虽然界面不重要,但有一个好看的界面会更有兴趣一些。于是了解到有一种 混合应用开发框架
,它们可以结合 vue.js
来开发出好看的界面,并可以打包成安卓程序,于是本人放弃了此篇更新。
——2024.9.20