通过Kivy将Python文件打包成apk

通过Kivy将Python文件打包成apk一.前言Kivy是一个开源的Python框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。且Kivy可以运行于Windows,Linux,MacOS,Android,iOS等当前绝大部分主流桌面/移动端操作系统。周日在配置Kivy时,教程繁多繁琐,让自己有些找不着北,挨个试后,经常在某处卡壳,屡屡碰壁,希望自己接下来的

大家好,又见面了,我是你们的朋友全栈君。

我是精神抖擞王大鹏,不卑不亢,和蔼可亲~  
计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。
公众号:diting_dapeng

一.前言

 Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前

流行的用户界面,比如多点触摸等等。且Kivy 可以运行于 Windows, Linux,

MacOS, Android, iOS 等当前绝大部分主流桌面/移动端操作系统。

周日在配置Kivy时,教程繁多繁琐,让自己有些找不着北,挨个试后,经常在某

处卡壳,屡屡碰壁,

希望自己接下来的集成操作可以为和我一样初开始无所适从的人带来一些帮助

感谢@校长叫我起床,@面包群友的帮助,让我在配置无门时找到了方向;

—镜像文件及GitHub链接传送门在底部,欢迎拍砖

二.安装操作

 将Py文件打包成apk文件,江湖上暂有如下3个方法:

       1.通过Buildozer;(在linux环境下实现,集成式框架比较容易实现

       2.通过python for android,(这种可以在windows下实现,但需要安装和配置许多内容,较为繁琐)

       3.通过Kivy Launcher上打包(需要用到谷歌市场,但想在我大天朝嘛….建议你选择别的)

 kivy打包的Buildozer有两种工具,分别是p4a和buildozer,kivydev64使用p4a,kivydev使用buildozer。 buildozer其实是对p4a做了进一步封装,换汤不换药。如果你不想配置recipe和dist之类的参数,可以使用buildozer,但是每次都要复制已经打包成功的项目目录下的.buildozer到要打包的项目目录下,buildozer才不会重复下载sdk和ndk等。而.buildozer目录通常在1G以上,每个项目目录如果都复制一份,不久就会耗尽虚拟机的硬盘空间。所以推荐使用p4a,也就是kivydev64,这个打包环境也是第一个建立在64位ubuntu的环境。

 1. 安装好环境后,打开VirtualBox,楼主遇到的第一个问题就是:

 通过Kivy将Python文件打包成apk

 这个问题产生的原因是因为VirtualBox的环境不兼容,win7的话需要将其兼容性配置为Windows Server  2008进行运行;

 2. 在成功导入打开的过程中,还会遇到一个问题,会提示你usb接入错误,此时需要你安装这个文件:

 通过Kivy将Python文件打包成apk

 下载的链接地址已经放到下方;

 3.成功将镜像环境导入后,如果你能看到此神兽Ubantu,说明你的胜利已经在前方:

 通过Kivy将Python文件打包成apk

 3. 进入到/home/kivydev//test是测试目录,该目录下的py2apk是py27打包,py3apk是py35打包,这两个版本的差别只在于不同版本的py配置文件,在该目录下的py文件,必须使用main.py命名才能进行打包,先在该目录下对main.py进行编译,看能否成功执行:python3 main.py

 4. 可以成功编译后,接下来在py2apk或py3apk的目录下执行打包命令:

  p4a apk

    即可在该目录下产生apk的文件;

 5.这里仅作为测试,将该main.py生成的apk进行,在手机上的运行效果如图:

 通过Kivy将Python文件打包成apk

三.后话

 至此,已经可以完成简单的py文件的封装了,至于py文件如何编写成适于安卓版本的,以及如何更换图标,如何再进行设置里面的内容,建议阅读官方文档进行学习,文档地址:https://github.com/nkiiiiid/Kivy-CN

 再次感谢前行的铺路者们!

四.镜像文件及链接传送门

 打包环境下载地址kivydev64v1.0_免费高速下载|百度网盘-分享无限制

 Vbox4.3.12下载地址VirtualBox-4.3.12-93733-Win.exe_免费高速下载|百度网盘-分享无限制

 vbox4.3.12 Extension pack下载地址Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack_免费高速下载|百度网盘-分享无限制

 系统 Ubuntu 16.04 64位

 用户名 kivydev 密码 kivydev

 用户名root 密码 root

 已安装增强工具,支持共享文件夹、分辨率调整、宿主机与虚拟机复制粘贴

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143911.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • http请求状态码为返回405

    http请求状态码为返回405状态码为 405 表示请求的方式不对 请求的方式有 get post head put 常用的为 post 和 get 我的报错为 org springframew web HttpRequestM Requestmetho POST notsupported 然后我将 HttpPostrequ newHttpPost url

    2025年7月25日
    1
  • Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]

    Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]在Java接受前端传过来的数据信息的时候,使用List<List<double>>进行接收结果出现这个错误java.lang.Integercannotbecasttojava.lang.Double是类型转换出现的错误,当是这个数据在前端明明处理过,使用parseFloat转为了浮点数后端使用List<List>进行接收,此时也没有报错于是打开debug进行调试检查问题,发现传过来的数值如果是整数则为Integer类型,有小数的才是double类型

    2022年7月16日
    14
  • Python中“取整”的各种问题[通俗易懂]

    Python向上取整的算法一、初衷:  有时候我们分页展示数据的时候,需要计算页数。一般都是向上取整,例如counts=205pageCouts=20,pages=11页。一般的除法只是取整数部分,达不到要求。二、方法:1、通用除法:  UP(A/B)=int((A+B-1)/B)  取临界值,计算下A+B-1的范围就OK.2、Python除法:…

    2022年4月17日
    91
  • 微信定位精灵服务器或网络异常,为什么微信定位精灵定位不了怎么办?

    微信定位精灵服务器或网络异常,为什么微信定位精灵定位不了怎么办?方法如下:1、下载“微信定位精灵”软件,安装;2、按图示设置如下,然后缩小地图,把光标定位在大马或任意地方,点击左上角的圆形定位按键完成定位,点右上角的菜单栏,选择“启动微信”,接下来的正常操作就行了。3、打开手机网络,关掉手机的网络定位,GPS等等。打开精灵,看见地图中间有个十字架,那就是你将要定位的地方,比如你的朋友身边。5.点击左上角的定位按钮。一秒你就穿越了。6、打开右边的启动微信。找身边…

    2022年5月7日
    94
  • C++有序双向链表

    C++有序双向链表

    2021年8月20日
    58
  • oracle rac常用命令_oracle rac集群搭建

    oracle rac常用命令_oracle rac集群搭建SRVCTLAdd添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME和ORACLE_SID参数匹配。srvctladddatabase-ddatabase_name[-mdomain_name]-ooracle_home[-sspfile]srvctladdinstance-d database_name -iinsta…

    2022年9月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号