如何使用Python打包APK

 更新时间:2024年02月21日 09:34:55   作者:罗五十  
这篇文章主要介绍了Linux环境下的Python打包和部署实践的相关资料,需要的朋友可以参考下

之前偶尔接触到了python开发app的工具kivy(也能开发windows/linux/mac应用),然后发现网上教程极少,甚至第一步打包apk就劝退了很多人,我也踩了很多坑,最后还是一一解决了,这里写个文章记录下。

我选择用buidlozer打包apk,主要参考官方文档:https://buildozer.readthedocs.io/en/latest/installation.html

从文档上看,这个工具主要是在linux和macos上用,我这边主要用windows,所以我选择用虚拟机来搭建打包环境。
整个搭建过程录频传到b站上了,供参考python安卓开发——kivy打包安卓APK逐步教学

一、准备linux环境和相关工具

这里直接VMware+Ubuntu20.04解决环境问题,这一有个坑,一定要用18以上的ubuntu,否则可能因为openssl版本导致后续步骤失败。如何安装虚拟机和在虚拟机上安装系统就不赘述了,一般按照安装引导就ok。

安装完成后为了后续方便使用,建议安装以下两个工具:

  1. openssl-server(linux)+Mobaxterm(windows)。ssh登录linux,方便windows下贴命令,否则的话需要安装vmware-tools,但是感觉这个不太好用。另外也可以通过这个来在虚拟机和windows间传输文件。这个配置也简单,直接sudo apt install openssl-server即可
  2. samba。linux上配置samba方便共享文件,这样windows可以直接添加网络位置,可以方便地在windows上编辑文件并在linux编译运行。可参考博文【详细步骤】Ubuntu安装Samba服务及配置共享文件夹进行配置

二、准备python环境

官方文档说的需要3.8以上版本,因此我也就直接用3.8了。
为了后续方便,还是用conda来管理python环境,我这里用的miniconda,因为文件要小一些,所需要的功能也都有。

conda create -n kivy python=3.8
source activate kivy
pip install kivy

然后把我们在windows下写的程序传到虚拟机里面,代码是一段简单的demo如下,python ./main验证ok

from kivy.app import App
from kivy.uix.button import Button
 
class TestApp(App):
    def build(self):
        return Button(text='iPaoMi')
 
TestApp().run()

在这里插入图片描述

三、buildozer打包apk

在工程目录下,执行以下命令

3.1 初始化

在工程目录下执行buildozer init,会生成一个.spec配置文件,内容可以自己看看,包括App名称等,这里我也没有仔细研究。

3.2 buildozer -v android debug

接下来是个巨坑,官方文档上说明是执行buildozer -v android debug,如果你是初次运行,就可以去泡一杯咖啡了。因为这个过程中会自动下载SDK/NDK等内容。

然后第一个坑就来了,如果你是ubuntu16,那么大概跑了十几分钟后会失败,提示ssl之类的错误。
其实这里并不需要魔法,可以正常下载,原因就在ubuntu的ssl版本。
SDK里面用的python3.10.10,要求openssl版本大于1.1.1
如果你愿意折腾,可以试试升级一下是否能解决这个问题,但我建议直接用ubuntu20.04,按官方文档来。

然后是第二个坑,如果下载过程中网络波动导致失败,重新尝试下载时,会提示文件已存在,或者是某某工具找不到
因为之前下载未完成但是可能文件已经存在,这将影响工具对下载状态的判断,需要删除工程目录下的.buildozer文件夹和用户目录下的.buildozer文件夹

然后是第三个坑,下了十几分钟文件后,有一个文件无法下载,看域名确实是需要魔法才能下载,但是这并不意味着我们需要这个文件
重新执行之前的命令,发现没有出现前面的问题,开始正式编译了,最终生成目录bin,并在其下能找到apk文件。

四、验证

这里没有像官方文档中建议那样直接用USB调试,而是简单的将APK文件拖入安卓模拟器验证,执行ok。


在这里插入图片描述

后续修改代码内容重新编译,大约只需要半分钟即可打包完成。也就是第一次使用比较困难。

到此这篇关于如何使用Python打包APK的文章就介绍到这了,更多相关Python打包APK内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout方式

    PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout方式

    这篇文章主要介绍了PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Windows下Anaconda下载安装与配置教程分享

    Windows下Anaconda下载安装与配置教程分享

    这篇文章主要介绍了Windows下Anaconda下载安装与配置教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python开发最牛逼的IDE——pycharm

    Python开发最牛逼的IDE——pycharm

    这篇文章给大家介绍了Python开发最牛逼的IDE——pycharm,主要是介绍python IDE pycharm的安装与使用教程,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • Python实现多子图绘制系统的示例详解

    Python实现多子图绘制系统的示例详解

    这篇文章主要介绍了如何利用python实现多子图绘制系统,文中的示例代码讲解详细,具有一定的的参考价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • Python调用百度AI实现图片上文字识别功能实例

    Python调用百度AI实现图片上文字识别功能实例

    百度AI功能还是很强大的,百度AI开放平台真的是测试接口的天堂,免费接口很多,当然有量的限制,但个人使用是完全够用的,下面这篇文章主要给大家介绍了关于Python调用百度AI实现图片上文字识别功能的相关资料,需要的朋友可以参考下
    2021-09-09
  • Python字节单位转换实例

    Python字节单位转换实例

    今天小编就为大家分享一篇Python字节单位转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python文件操作的基础详细讲解(write、read、readlines、readline)

    python文件操作的基础详细讲解(write、read、readlines、readline)

    使用python来读写文件是非常简单的操作,下面这篇文章主要给大家介绍了关于python文件操作的基础详细资料,包括write、read、readlines、readline等相关操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 以一段代码为实例快速入门Python2.7

    以一段代码为实例快速入门Python2.7

    这篇文章主要以一段代码为实例、简单介绍了Python2.7的各种函数和方法以及语句,来自网络上火爆的在线Python教程网站learnxinyminutes.com,需要的朋友可以参考下
    2015-03-03
  • Python实现暴力破解wifi密码并打包成exe

    Python实现暴力破解wifi密码并打包成exe

    python号称是编程界的万金油,那么是否可以做个读取电脑网卡wifi并暴力破解的小脚本呢?在这个基础上为了方便体验是不是可以将其打包成exe这样方便执行的小应用呢?本文就来和大家一起聊聊
    2022-09-09
  • python获取文件版本信息、公司名和产品名的方法

    python获取文件版本信息、公司名和产品名的方法

    这篇文章主要介绍了python获取文件版本信息、公司名和产品名的方法,是Python程序设计中非常实用的技巧,需要的朋友可以参考下
    2014-10-10

最新评论