IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Python 编写的图形程序打包为安卓 APP、IOS -> 正文阅读

[移动开发]Python 编写的图形程序打包为安卓 APP、IOS

如果想使用 Python 语言编写图形界面程序,那么有不少的框架可以提供支持,比如?KivyTkinter、PyQt、WxPython、pyui4win等等。

这些框架都是只能创建桌面图形界面程序,比如 Windows、Linux 和 macOS。

如果我们想要创建 IOS 或 Android 等平台的移动应用APP,它们就无能为力了。

那么 Python 能不能写移动应用APP呢?实际上是可以的。

Kivy 和 BeeWare 都宣称:一次编写,处处部署,基于这些个框架编写的图形界面程序,都能够打包为全平台的应用程序,比如:Windows、Linux、macOS、Android、IOS。

今天,我们就尝试使用一下 BeeWare 这个框架,编写一个图形界面程序,然后打包为一个安卓APP。

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

图片

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

安装依赖

  1. 苹果系统
    1. git
    2. Xcode
  2. linux
    1. Ubuntu 16.04??18.04、20.04
      1. sudo apt-get update
      2. sudo apt-get install git python3-dev python3-venv python3-gi python3-gi-cairo libgirepository1.0-dev libcairo2-dev libpango1.0-dev libwebkitgtk-3.0-0 gir1.2-webkit2-3.0
    2. Fedora
      1. sudo dnf install git pkg-config python3-devel gobject-introspection-devel cairo-devel cairo-gobject-devel pango-devel webkitgtk4

安装

  1. pip install briefcase

创建应用

BeeWare 安装完成之后,我们就可以通过briefcase命令在命令行终端进行 BeeWare 应用的管理,比如新建、运行、构建、打包等等。

我们先使用命令briefcase new创建一个应用。

命令输入之后,会让我们输入「应用的正式名称」、「应用程序名称」、「域名」、「项目名称」等等信息,在这里出于演示,我们统统使用默认值。

  1. briefcase new 创建默认项目
  2. briefcase dev? 运行项目
  3. 会出现GUI窗口

打包为Windows、mac、linux程序

  1. briefcase create? ? ? ? 运行命令,将会生成一些预配置文件,然后下载依赖的包。完成之后,项目目录下会生成一个 (Windows、mac、linux)的目录
  2. briefcase build? ? ? ? ? 构建应用
  3. briefcase run? ? ? ? ? ? 运行构建的应用
  4. briefcase package? ? 打包

更新应用

我们将应用程序打包为应用程序,我们在进行测试的时候会发现一些问题, 需要我们进行一些bug修复或者优化。即使应用程序是完美的,最终还是希望发布版本后, 需要具有改进功能的应用程序,那我们改怎么做呢?

更新应用程序代码

当按下按钮时,我们的应用程序当前会打印到控制台。但是,GUI 应用程序不应该真正使用控制台进行输出。他们需要使用对话与用户进行交流。

添加一个对话框来打招呼,而不是写到控制台。修改say_hello回调,使其看起来像这样:

def say_hello(self, widget):
    self.main_window.info_dialog(
        'Hello, {}'.format(self.name_input.value),
        'Hi there!'
    )

这会指示 Toga 在按下按钮时打开一个模式对话框。

如果你运行,输入一个名字,然后按下按钮,你会看到新的对话框:briefcase?dev

但是,如果运行,则不会出现该对话框。briefcase?run

为什么是这样?好吧,通过在适当的位置运行你的代码来运行 - 它试图为你的代码生成尽可能真实的运行时环境,但它不提供或使用任何平台基础结构来将你的代码包装为应用程序。打包你的应用程序的部分过程涉及将你的代码复制应用程序包中 - 目前,你的应用程序中仍然包含旧代码。briefcase?dev

所以 - 我们需要告诉公文包复制新版本的代码。我们?可以通过删除旧的平台目录并从头开始做到这一点。但是,公文包提供了一种更简单的方法 - 你可以更新现有捆绑应用程序的代码:

如果 Briefcase 找不到脚手架模板,它会自动调用?create生成一个新的脚手架。

现在我们已经更新了安装程序代码,然后我们可以运行?重新编译的应用程序,运行更新的应用程序,并重新打包应用程序以进行分发。briefcase?buildbriefcase?runbriefcase?package

一步更新和运行

如果你正在快速迭代代码更改,可能希望更改代码、更新应用程序并立即重新运行你的应用程序。公文包有一个支持这种使用模式的快捷方式 -命令上的-u(或?--update) 选项run

让我们尝试进行其他更改。你可能已经注意到,如果你不在文本输入框中键入名称,对话框将显示“您好,”。让我们say_hello再次修改?函数以处理这种边缘情况:

def say_hello(self, widget):
    if self.name_input.value:
        name = self.name_input.value
    else:
        name = 'stranger'

    self.main_window.info_dialog(
        'Hello, {}'.format(name),
        'Hi there!'
    )

在开发模式下运行你的应用程序(使用)以确认新逻辑有效;然后使用一个命令更新、构建和运行应用程序:briefcase?dev

仅当你正在测试有关你的应用程序如何作为本机二进制文件运行的内容时,或寻找仅在你的应用程序处于打包形式时才会出现的错误时,才需要这样做。对于大多数日常开发,?会快很多。briefcase?dev

package 命令也接受该-u参数,因此如果你对应用程序代码进行更改并希望立即重新打包,你可以运行?.briefcase?package?-u

打包为安卓APP、IOS

  1. briefcase create android? ? ? ? 创建应用的安卓脚手架
  2. briefcase build android? ? ? ? ? 构建安卓应用
  3. briefcase run android? ? ? ? ? ? ?运行构建好的安卓应用
  4. briefcase package android? ? 打包安卓应用

打包为安卓IOS

  1. briefcase create iOS? ? ? ? 创建应用的脚手架
  2. briefcase build iOS? ? ? ? ? 构建应用
  3. briefcase run iOS -d "iPhone 11"? ? ? ? ? ? 运行构建好的应用

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:52:17  更:2021-11-17 12:52:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:23:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码