使用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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
Sep 15 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
python中的itertools的使用详解
Jan 13 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
关于python中导入文件到list的问题
Oct 31 Python
python压包的概念及实例详解
Feb 17 Python
Python中X[:,0]和X[:,1]的用法
May 10 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/04/09 日漫
PHP与MySQL交互使用详解
2006/10/09 PHP
用文本文件制作留言板提示(下)
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP注释实例技巧
2008/10/03 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
python脚本监控docker容器
2016/04/27 Python
详解django中使用定时任务的方法
2018/09/27 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
客户代表自我评价范例
2013/09/24 职场文书
会议活动邀请函
2014/01/27 职场文书
战略合作协议书范本
2014/04/18 职场文书
婚宴主持词
2015/06/30 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL