用Python来开发安卓程序:(1)BeeWare安卓开发环境的搭建

news2024/11/29 22:50:09

文章目录

1. 前言

用Python来开发安卓程序不是最好的选择,但一定是一个可以偷懒的选择,我们这里采用BeeWare来完成这个工作。

2. BeeWare简介

  • BeeWare是一个基于Python构建的跨平台应用开发框架,宣称是Write once. Deploy everywhere.

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

  • 官网

  • toga/examples at main · beeware/toga · GitHub

3. 开发环境搭建注意事项

  • 应该使用Python3.8,否则安卓编译工具可能会安装不成功
  • img

  • 最好可以科学上网,否则安装的速度太慢了
  • 项目名称不要使用中文名,否则会报错

4. 安装BeeWare

  • pip install briefcase
  • img

5. 开发环境搭建

5.1 创建项目

5.1.1 创建一个新项目

  • 直接在命令行中输入 briefcase new
  • img
  • 输入这个命令之后,会让我们继续输入应用的正式名称,应用程序名称、域名、项目名称等等相关信息。根据自己的实际需要进行选择即可,当然了,也可以像我一样图省事儿全部都使用默认值
  • img

  • 把所有的信息都填完之后,就会开始创建项目了
  • img
  • 创建完成后会看见自己的当前目录下出现一个对应的项目文件夹
  • img

5.2 运行项目

  • 之后进入项目根目录,输入 briefcase dev 运行项目
  • img
  • img

5.3 打包项目

5.3.1 打包为Windows程序

  • 我们接下来将briefcase打包为Windows程序

5.3.1.1 首先briefcase create安装应用的脚手架

  • img

  • img

  • 运行命令,将会生成一些与配置的文件,然后下载对应依赖的包

  • 完成之后,项目目录下会生成一个Windows目录,如下图所示

  • img

5.3.1.2 然后构建应用

  • briefcase build
  • img
  • img

5.3.1.3 接着,运行构建的应用

  • briefcase run
  • img
  • 如果应用可以正常运行的话,那么我们下面就可以对它进行打包了

5.3.1.3 最后,打包应用

  • briefcase package
  • img
  • img
  • 打包完成后会在Windows文件夹下生成一个.msi的二进制安装文件
  • img

5.3.1.4 安装软件

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

  • img

  • img

  • img

  • img

  • img

  • 安装完之后,我们甚至可以在Windows的应用列表中看到刚才安装的这个软件

  • img

  • 点击打开它

  • img

5.3.2 打包为安卓APP

  • 如果我们想将其打包为安卓APP,那么和打包为Windows程序的过程也是非常类似的

5.3.2.1 首先,创建应用的安卓脚手架

  • briefcase create android
  • 这个下载的时间可能会久一点
  • 中间的所有过程都输入Y
  • img
  • img

  • 之后脚手架就安装成功了
  • img

5.3.2.2 接着,构建安卓应用

  • briefcase build android
  • img

  • img
  • img
  • 这个过程需要下载grade,所以会持续好长一段时间,要有耐心
  • img
  • 最终,经过24分钟的漫长等待之后,终于下载好了
  • img

5.3.2.3 运行构建好的安卓应用

  • briefcase run android
  • 在这里会让我们选择手机设备,可以选择提供的安卓虚拟机,或者是在电脑上连接自己的手机。
  • 使用安卓手机进行运行
  • 在这里,我们使用选择使用安卓虚拟机进行运行
  • img
  • 首先是进行安卓虚拟机的安装,需要说明的是,用自己的手机马上就可以验证向左,而如果用虚拟机的话,依然是需要漫长的下载等待
  • img
  • 安装完毕
  • img
  • 启动虚拟机过程中
  • img
  • 虚拟机运行安卓程序
  • img

5.3.2.4 使用自己的手机设备进行运行

  • 这个就很简单了,命令行直接通过数据线把对应的APP安装到手机上进行运行,也很方便
  • img
  • img

5.3.2.5 最后打包安卓应用

  • briefcase package android
  • img

  • 打包完成后,我们可以在.\android\gradle\Hello World\app\build\outputs 下面找到打包好的文件
  • img
  • BeeWare提供了两种打包好的文件,一种是用于谷歌商店发布的.aab文件
  • img
  • 另一种是用于调试的.apk文件
  • img
  • 我们安装的话就用这个APK文件

5.3.2.6 手机端安装APP

  • img
  • img
  • img

  • img
  • 这样用Python来编译开发android应用的流程就完成了。

6. 报错

编码错误

  • img
  • 不要使用中文路径
  • briefcase build android 时Error while building project.
  • img
  • 可能之前自己安装过一次,所以这里依然残留有安装报错的文件,将它们删掉之后再安装就好了

就是下面这个文件

  • img
  • C:\Users\Lenovo\AppData\Local\BeeWare\briefcase\Cache\tools\android_sdk\ndk\21.4.7075529
  • 将C:\Users\Lenovo\AppData\Local\BeeWare\briefcase\Cache
  • 文件夹的所有文件都删除
  • 之后再重新安装,可以发现已经不报错了
  • img

Warning: Still waiting for package manifests to be fetched remotely

  • img
  • 简单来说就是网络不好,多等一会儿,也许就可以进行下一步了
  • img
  • img

Unable to install dependencies. This may be because one of your dependencies is invalid, or because pip was unable to connect to the PyPI server.

  • 简单来说,就是自己的电脑连不上Python的官方服务器

给命令设置一下代理即可

  • img

7. 问题

  • BeeWare的缓存文件放在哪里
  • img

8. 参考教程

  • 参考安装教程
  • 用 Python 编写安卓 APK ,简单几步搞定 - 知乎
  • 官方的示例文档
  • toga/examples at main · beeware/toga · GitHub
  • BeeWare官方教程中文版_–吉择–的博客-CSDN博客_beeware

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2. JVM内存模型

1. JVM虚拟机内存模型图解 JAVA虚拟机主要由这三部分组成类装载子系统,字节码执行引擎,运行时数据区上一节我们不是学了类的加载吗,那些类加载器许多都是C帮我们做的,那么我们这个类装载子系统就是帮我们把类放入运行时数据区的&a…

[附源码]Python计算机毕业设计SSM浪漫烘焙屋(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

原创|一个统计查询模块基于设计模式的抽象设计

文章目录一、需求背景二、详细设计UML设计包设计三、程序设计1、VideoAdStatCaliberEnum2、LiveDashboardBusiness3、StatHandleDispatcher4、StatCaliberEnum5、StatContext5、AbstractStatHandler6、LoggerService7、AbstractVideoAdStatHandler1、VideoAdStatContext2、Vide…

cpu设计和实现(协处理器cp0)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 除了通用计算器负责控制和计算之外,cpu如果需要正常有序地运行,还需要一定地协处理器来帮助完成对应地工作。在mips下面&am…

Vue实现流程图,借鉴vue-tree-color 实现流程框架技术

Vue实现流程图,借鉴vue-tree-color 实现流程框架技术 文章目录Vue实现流程图,借鉴vue-tree-color 实现流程框架技术借鉴鸣谢演示效果引入依赖添加全局组件的二次封装步骤1 创建组件目录Vuenode.jstree.less使用组件引入使用数据结构案例借鉴鸣谢 实现组…

[附源码]Python计算机毕业设计Django的桌游信息管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

元宇宙产业委调研行杭州站 | 联合西溪谷管委会共商元宇宙赋能实体经济

11月29日下午,由杭州西溪谷建设发展管理委员会和中国移动通信联合会元宇宙产业工作委员会共同举办的“元宇宙赋能实体经济企业家沙龙暨元宇宙产业委调研行杭州站”在西溪谷杭州蚂蚁链产业创新中心召开。20余家元宇宙和区块链企业到场,西溪谷管委会党委书…

pytorch复习笔记--loss.backward()、optimizer.step()和optimizer.zero_grad()的用法

目录 1--loss.backward()的用法 2--optimizer.step()的用法 3--optimizer.zero_grad()的用法 4--举例说明 5--参考 1--loss.backward()的用法 作用:将损失loss向输入测进行反向传播;这一步会计算所有变量x的梯度值 ,并将其累积为 进行备…

迎合国家新政策,共享购联合共享经济,三方互利,消费增值

共享单车打通出行“最后一公里”,共享充电宝让人们出门在外免于“电量烦恼”,共享办公降低办公成本……共享经济已深入到人们日常生活。近日,国家信息中心发布的《中国共享经济发展报告(2022)》显示,2021年…

EMR-Jindo Spark 核心引擎优化

Jindo-Spark 是阿里云智能E-MapReduce 团队在开源的Apache Spark 基础上自主研发的分布式云原生 OLAP 引擎,已经在近千E-MapReduce 客户中大规模部署使用。Jindo Spark 在开源版本基础上做了大量优化和扩展,深度集成和连接了众多阿里云基础服务。凭借该引…

工作流-流程实例【ProcessInstance】与执行实例【Execution】

一、ProcessInstance与Execution的区别 这是一个Activiti的难点,能够懂得这个,工作流也就入门大半了。 下面,我就细致的讲解一下他们的区别。 (1)首先,我们来看一张我总结的图片(这个图片中两条…

Flink-处理函数以及TopN运用案例

7 处理函数 7.1 概述 更底层的操作,直接对流进行操作,直接调用处理函数 7.2 基本处理函数ProcessFunction 分析 ProcessFunction的来源 处理函数继承了AbstractRichFunction富函数抽象类,因此就具有访问状态(state)和其他运行时环境 例…

Day39——Dp专题

文章目录01背包二维数组一维数组6.整数拆分7.不同的二叉搜索01背包 01背包:每一个物品只能选一次,选或者不选 状态标识:f[i][j]:所有只考虑前i个物品,且总体积不超j的所有选法的集合 属性:Max 状态计算&a…

链表之反转链表

文章目录链表之反转链表题目描述解题思路代码实现链表之反转链表 力扣链接 题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: ​ 输入: 1->2->3->4->5->NULL ​ 输出: 5->4-&…

如何设计高性能架构

高性能复杂度模型 高性能复杂度分析和设计 单机 集群 任务分配 将任务分配给多个服务器执行 复杂度分析 增加“任务分配器”节点,可以是独立的服务器,也可以是SDK任务分配器需要管理所有的服务器,可以通过配置文件,也可以通过…

RK3588移植-opencv交叉编译aarch64

文章参考:https://blog.csdn.net/KayChanGEEK/article/details/80365320 文章目录概括准备资源交叉编译OPENCV修改CMakelist文件将lib库复制到/lib目录注意:本文中的所有配置相关路径都与当前安装的路径有关,需要根据自己的环境进行自行修改&…

『Java课设』JavaSwing+MySQL实现学生成绩管理系统

👨‍🎓作者简介:一位喜欢写作,计科专业大三菜鸟 🏡个人主页:starry陆离 如果文章有帮到你的话记得点赞👍收藏💗支持一下哦 『Java课设』JavaSwingMySQL实现学生成绩管理系统前言1.开…

SparkMlib 之随机森林及其案例

文章目录什么是随机森林?随机森林的优缺点随机森林示例——鸢尾花分类什么是随机森林? 随机森林算法是机器学习、计算机视觉等领域内应用极为广泛的一个算法,它不仅可以用来做分类,也可用来做回归即预测,随机森林机由…

RabbitMQ之可靠性分析

在使用任何消息中间件的过程中,难免会出现消息丢失等异常情况,这个时候就需要有一个良好的机制来跟踪记录消息的过程(轨迹溯源),帮助我们排查问题。在RabbitMQ 中可以使用Firehose 功能来实现消息追踪,Fire…

艾美捷MTT细胞增殖检测试剂盒结果示例引用文献

艾美捷MTT细胞增殖检测试剂盒测定原理: 该试剂盒提供了比色形式测量和监测细胞增殖,含有足够的试剂用于评估在96孔板中进行960次测定或在24孔板中进行192次测定。细胞可以被镀,然后用影响增殖的化合物或药剂。然后用增殖试剂检测细胞&#x…