使用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 检查是否为中文字符串的方法
Dec 28 Python
Django框架验证码用法实例分析
May 10 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
Python 变量的创建过程详解
Sep 02 Python
使用Python制作新型冠状病毒实时疫情图
Jan 28 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
什么是python类属性
Jun 10 Python
python3.7添加dlib模块的方法
Jul 01 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
基于flask实现五子棋小游戏
May 25 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
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Random 在 Python 中的使用方法
2018/08/09 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
校友会欢迎辞
2014/01/13 职场文书
《中华少年》教学反思
2014/02/15 职场文书
校长寄语大全
2014/04/09 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
布达拉宫的导游词
2015/02/02 职场文书
Oracle中DBLink的详细介绍
2022/04/29 Oracle
Python数组变形的几种实现方法
2022/05/30 Python