现在,我们将使用我们的应用程序,并将其部署为 Android 应用程序。

将应用程序部署到 Android 的过程与部署为桌面应用程序的过程非常相似。Briefcase 负责为 Android 安装依赖项,包括 Android SDK、Android 模拟器和 Java 编译器。

创建一个Android应用并编译它
首先,运行create命令。这会下载一个 Android 应用模板并将您的 Python 代码添加到其中。

苹果系统

(beeware-venv) $ briefcase create android[helloworld] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git
...
[helloworld] Installing support package...
...
[helloworld] Installing dependencies...
...
[helloworld] Installing application code...
...
[helloworld] Installing application resources...
...
[helloworld] Application created.

Linux

(beeware-venv) $ briefcase create android[helloworld] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git
...
[helloworld] Installing support package...
...
[helloworld] Installing dependencies...
...
[helloworld] Installing application code...
...
[helloworld] Installing application resources...
...
[helloworld] Application created.

视窗

(beeware-venv) C:\...>briefcase create android[helloworld] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git
...
[helloworld] Installing support package...
...
[helloworld] Installing dependencies...
...
[helloworld] Installing application code...
...
[helloworld] Installing application resources...
...
[helloworld] Application created.

首次运行时,Briefcase 会下载 Java JDK 和 Android SDK。文件大小和下载时间可能很长;这可能需要一段时间(10 分钟或更长时间,具体取决于您的 Internet 连接速度)。下载完成后,系统会提示您接受 Google 的 Android SDK 许可。briefcase create android

一旦完成,我们现在将android在我们的项目中有一个目录。该目录将包含一个文件夹,该文件夹将包含一个带有 Gradle 构建配置的 Android 项目。该项目将包含您的应用程序代码,以及一个包含 Python 解释器的支持包。Hello World

然后,我们可以使用 Briefcase 的build命令将其编译为 Android APK 应用程序文件。

苹果系统

(beeware-venv) $ briefcase build android
[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
[helloworld] Built android/Hello World/app/build/outputs/apk/debug/app-debug.apk
Gradle 可能看起来卡住了

Linux

(beeware-venv) $ briefcase build android
[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
[helloworld] Built android/Hello World/app/build/outputs/apk/debug/app-debug.apk

视窗

(beeware-venv) C:\...>briefcase build android
[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
[helloworld] Built android\Hello World\app\build\outputs\apk\debug\app-debug.apk

在该步骤中,Gradle(Android 平台构建工具)将打印,并且似乎什么也没做。别担心,它没有卡住 - 它正在下载更多的 Android SDK 组件。根据您的 Internet 连接速度,这可能需要另外 10 分钟(或更长时间)。这种延迟应该只在您第一次运行时发生 ;这些工具被缓存,并且在您的下一次构建中,将使用缓存的版本。briefcase build androidCONFIGURING: 100%build

在虚拟设备上运行应用程序
我们现在准备好运行我们的应用程序了。您可以使用公文包的run命令在 Android 设备上运行该应用程序。让我们从在 Android 模拟器上运行开始。

要运行您的应用程序,请运行. 执行此操作时,系统会提示您提供可以运行该应用程序的设备列表。最后一项将始终是创建新 Android 模拟器的选项。briefcase run android苹果系统

(beeware-venv) $ briefcase run androidSelect device:1) Create a new Android emulator>

Linux

(beeware-venv) $ briefcase run androidSelect device:1) Create a new Android emulator>

视窗

(beeware-venv) C:\...>briefcase run androidSelect device:1) Create a new Android emulator>

我们现在可以选择我们想要的设备。选择“创建新的 Android 模拟器”选项,并接受设备名称的默认选择 ( beePhone)。

公文包run将自动启动虚拟设备。设备启动时,您将看到 Android 徽标:

Android 虚拟设备启动
Android 虚拟设备启动

设备完成启动后,公文包将在设备上安装您的应用程序。您将短暂看到一个启动器屏幕:

Android 虚拟设备已完全启动,在启动器屏幕上

Android 虚拟设备已完全启动,在启动器屏幕上

然后应用程序将启动。当应用程序启动时,您会看到一个启动画面:

应用启动画面

应用启动画面

应用程序第一次启动时,需要将自身解压到设备上。这可能需要几秒钟。解压后,您将看到我们桌面应用程序的 Android 版本:

教程 2 中的应用程序,完全启动
演示应用程序完全启动

如果您没有看到您的应用程序启动,您可能需要检查您运行的终端并查找任何错误消息。briefcase run

以后,如果您想在此设备上运行而不使用菜单,您可以将模拟器的名称提供给公文包,用于直接在虚拟设备上运行。briefcase run android -d @beePhone

在物理设备上运行应用程序
如果您有实体 Android 手机或平板电脑,您可以使用 USB 数据线将其连接到您的计算机,然后使用公文包来定位您的实体设备。

如果公文包可以检测到设备,它将出现在run输出中。第一次使用设备进行开发时,它可能会将自己报告为“未知设备(未授权开发)”:

苹果系统

(beeware-venv) $ briefcase run androidSelect device:1) Unknown device (not authorized for development) (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

Linux

(beeware-venv) $ briefcase run androidSelect device:1) Unknown device (not authorized for development) (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

视窗

(beeware-venv) C:\...>briefcase run androidSelect device:1) Unknown device (not authorized for development) (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

Android 要求在您将应用程序加载到设备上之前,将设备置​​于“开发者”模式。选择“未知”设备,您将看到一个链接,显示如何启用开发者模式。

启用开发人员模式后,您可以重新运行:briefcase run android

苹果系统

(beeware-venv) $ briefcase run androidSelect device:1) Pixel 3a (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

Linux

(beeware-venv) $ briefcase run androidSelect device:1) Pixel 3a (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

视窗

(beeware-venv) C:\...>briefcase run androidSelect device:1) Pixel 3a (94ZZY0LNE8)2) @beePhone (emulator)3) Create a new Android emulator>

这一次,我们得到了设备的名称和序列号(在本例中为 Pixel 3a)。

将来,如果您想在此设备上运行而不使用菜单,您可以将手机的序列号提供给公文包,使用. Thi 将直接在设备上运行,无需提示。briefcase run android -d 94ZZY0LNE8

笔记

在为 Android 开发时,能够查看 Android 日志非常有用。要在没有来自系统其余部分的背景噪音的情况下查看 Android 日志,您可以运行. 您的应用程序写入标准输出的任何内容(例如, 语句的输出)都将在日志中可见。adb logcat -s MainActivity:* stdio:* Python:*print()

下一步
我们现在在手机上安装了一个应用程序!但是,这个应用程序相当简单,并且不涉及任何第三方库。我们可以在我们的应用程序中包含来自 Python 包索引 (PyPI) 的库吗?转到教程 6以了解...

BeeWare 峰器 中文文档 - 教程 5 - 移动端:Android相关推荐

  1. BeeWare 峰器 中文文档 - 教程 5 - 移动端:iOS

    现在,我们将使用我们的应用程序,并将其部署为 iOS 应用程序. 将应用程序部署到 iOS 的过程与部署为桌面应用程序的过程非常相似.首先,您运行create命令 - 但是这一次,我们指定我们要创建一 ...

  2. BeeWare 峰器 中文文档 - 教程 3 - 分发包装

    到目前为止,我们一直在"开发者模式"下运行我们的应用程序.这使我们可以轻松地在本地运行我们的应用程序 - 但我们真正想要的是能够将我们的应用程序提供给其他人. 但是,我们不想教我们 ...

  3. BeeWare 峰器 中文文档 - 教程 0 - 让我们开始

    教程 0 - 让我们开始吧! 在我们构建我们的第一个 BeeWare 应用程序之前,我们必须确保我们已经具备运行 BeeWare 的所有先决条件. 安装 Python 我们首先需要的是一个运行 Pyt ...

  4. BeeWare 峰器 中文文档 - 教程 1 - 你的第一个应用程序

    我们已准备好创建我们的第一个应用程序. 安装 BeeWare 工具 首先,我们需要安装公文包.Briefcase 是一个 BeeWare 工具,可用于打包您的应用程序以分发给最终用户 - 但它也可用于 ...

  5. BeeWare 峰器 中文文档 - 教程 6 - 开始这个(第三方)

    到目前为止,我们构建的应用程序只使用了我们自己的代码,加上 BeeWare 提供的代码.但是,在实际应用中,您可能希望使用从 Python 包索引 (PyPI) 下载的第三方库. 让我们修改我们的应用 ...

  6. BeeWare 峰器 中文文档 - 教程 2 - 让它变得有趣

    在教程 1中,我们生成了一个能够运行的存根项目,但我们自己没有编写任何代码.让我们看看为我们生成了什么. 产生了什么 在src/helloworld目录中,您应该看到 3 个文件__init__.py ...

  7. React + webpack 开发单页面应用简明中文文档教程(一)一些基础概念

    React + webpack 开发单页面应用简明中文文档教程(一)一些基础概念 React 入门系列教程导航 React + webpack 开发单页面应用简明中文文档教程(一)一些基础概念 Rea ...

  8. opm openresty的包管理器-中文文档

    2022年1月11日13:57:45 官方:https://opm.openresty.org/ 官方文档:https://opm.openresty.org/docs#table-of-conten ...

  9. nest class-validator验证修饰器中文文档

    网上好像没有class-validator验证修饰器的中文翻译,也好像没有官网,只有npm插件介绍里有,但是是英文的.这里我就做回搬运工,并翻译下,好用请点赞 至于使用方法nestjs官网直接cv,不 ...

最新文章

  1. 输入法项目-用delphi生成GBK 中文编码 表(4~5) GBK/4~5: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体 0xA840~0xA995(部分) 扩充非汉字...
  2. session或者error引起的iframe嵌套问题的解决
  3. 搞笑之----普通话
  4. _Blank主页——个人浏览器主页定制
  5. HDU - 3530 Subsequence(单调队列+思维)
  6. 直播开发项目发展下半场,转战AI直播开启全新模式
  7. SM37作业条目的存储表
  8. 2 字符串求交集_PostGIS教程十八:维数扩展的9交集模型
  9. JAVA并发七(多线程环境中安全使用集合API)
  10. iOS:Covert p12 back to CSR
  11. branch and bound(分支定界)算法-基础概念
  12. 嵌入式系统——专业英语
  13. paip.验证码识别的意义
  14. MySql整理(基础|进阶|运维)【黑马程序员视频】
  15. 【记要】计算机基础通识知识
  16. 一个HTTP请求的完整过程
  17. 二进制转化为十六进制
  18. 如何使用Blender制作360度全景图和全景视频?
  19. linux命令 ---rm
  20. 【大数据AI人工智能】图数据库的发展脉络与技术演进

热门文章

  1. 城市排水管网监测的重要性及解决措施
  2. 真身不明的他却颠覆了整个世界
  3. 机器人三星云顶之弈_云顶之弈机器人玩法介绍
  4. HTTP请求方法—Request Method
  5. 数学建模实战——茂名市科技创新和科技金融评价模型
  6. jquery事件委托off与on连用无效的问题
  7. 银河麒麟v10 sp1服务器操作系统安装使用tcpdump抓包工具
  8. elementui 表格表头换行_解决element-ui表格表头内容太长时的换行问题
  9. idea中鼠标滚动失效的解决方案:
  10. Windows网络流量监控工具整理