使用Kivy将python程序打包为apk文件


Posted in Python onJuly 29, 2017

1.概述

Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用
它来将Python程序打包为安卓的apk安装文件。以下是在windows环境中使用。

安装和配置的过程中会下载很多东西,确保你能够稳定地访问外网,另外推荐一个视频教程:Youtube

2. 步骤

第一当然是安装了Python,我的版本是Python 2.7.13,然后就是安装Kivy包:

官网有详细的Kivy包的安装步骤,按照该步骤走完就安装ok。

使用Kivy将python程序打包为apk文件

然后就是写一个简单的程序main.py测试一下:

import kivy
kivy.require('1.9.1')
from kivy.app import App
from kivy.uix.button import Button

class test(App):
  def build(self):
    return Button(text='hello world')
  

if __name__ == '__main__':
  test().run()

运行截图:
使用Kivy将python程序打包为apk文件

运行成功,那开发环境基本没问题了。然后下面就是怎么将这个程序打包成apk

首先需要安装虚拟机 VirtualBox,这个没问题,很快就装好了,然后Kivy官方制作了该虚拟机的映像(很体贴),下载后就直接能运行了,省去不少麻烦。下载地址,或者直接去官网下载:

使用Kivy将python程序打包为apk文件

下载并解压之后,打开VB并载入该文件夹下的虚拟机文件,然后运行(登录密码kivy):

使用Kivy将python程序打包为apk文件

进入到该系统中之后,就需要开始配置环境。官方指导

首先我们先在该系统中添加一个共享文件夹,这样可以和windows共享文件,在VB的设备->共享文件夹选项中有配置:

使用Kivy将python程序打包为apk文件

然后我们使用固定分配,在windows下某个路径新建一个文件夹后将其选择为共享文件夹,并选择自动挂载:

使用Kivy将python程序打包为apk文件

然后重新启动虚拟机就可以访问该共享文件夹了:

使用Kivy将python程序打包为apk文件

设置好了共享文件夹后,可以将之前写的测试程序main.py拷贝到该文件夹,然后在虚拟机中拷贝到桌面备用。

然后打开终端(cd到桌面),执行buildozer init命令,之后会在桌面上生成buildozer.spec的配置文件:

使用Kivy将python程序打包为apk文件

然后使用命令gedit buildozer.spec来编辑该文件,(如果没有gedit可以sudo apt-get install gedit来安装)

使用Kivy将python程序打包为apk文件

基本不用改什么,那个source.dir 需要注意,这是刚刚我们放在桌面上的main.py的路径。

然后运行buildozer android_new debug,接着就开始下载很多东西了,例如Android SDK,Android NDK之类,并且是需要访问外网的,自搭梯子。这个过程要很久,让我一度以为出了问题,然后我中午睡一觉起来就差不多了^^。

然后在它自动下载配置之后就会在桌面的bin文件夹下面生成了apk文件,可以安装在手机上试一下。

然后基本流程大概如此^^,详细可以去官网了解,我就是按照官网的步骤完成的。

最后再推荐一个MIT开发的快速制作安卓app的网站,http://appinventor.mit.edu/explore/

Python 相关文章推荐
Python version 2.7 required, which was not found in the registry
Aug 26 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
Python中的引用知识点总结
May 20 Python
python字典的遍历3种方法详解
Aug 10 Python
Python对接支付宝支付自实现功能
Oct 10 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 #Python
Python3中使用PyMongo的方法详解
Jul 28 #Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 #Python
Python单体模式的几种常见实现方法详解
Jul 28 #Python
深入浅出分析Python装饰器用法
Jul 28 #Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 #Python
Python使用sorted排序的方法小结
Jul 28 #Python
You might like
帅气的琦玉老师
2020/03/02 日漫
PHP print类函数使用总结
2010/06/25 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Python eval函数介绍及用法
2020/11/09 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
大学生活学习的自我评价
2013/12/03 职场文书
劲霸男装广告词
2014/03/21 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
四风对照检查材料范文
2014/09/27 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
2014年科研工作总结
2014/12/03 职场文书
老公婚前保证书
2015/02/28 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android