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

yipeiwu_com6年前Python基础

1.概述

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

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

2. 步骤

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

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

然后就是写一个简单的程序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()

运行截图:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

快速排序的算法思想及Python版快速排序的实现示例

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 1.分治法的基本思想...

用python3教你任意Html主内容提取功能

用python3教你任意Html主内容提取功能

本文将和大家分享一些从互联网上爬取语料的经验。 0x1 工具准备 工欲善其事必先利其器,爬取语料的根基便是基于python。 我们基于python3进行开发,主要使用以下几个模块:req...

django框架防止XSS注入的方法分析

本文实例讲述了django框架防止XSS注入的方法。分享给大家供大家参考,具体如下: XSS 是常见的跨站脚本攻击,而且这种类型的错误很不容易被发现或者被开发人员忽视,当然django...

python学生管理系统

python学生管理系统

这几天开始接触了python语言,这语言相对c语言简洁了不少,语言真是一通百通,学起来还是比较轻松,在熟悉了基本语法,列表(序列),元组以及字典之后写了一个最基础简单的的学生管理系统 能...

Python中字典的基本知识初步介绍

 字典是可变的,并且可以存储任意数量的Python对象,包括其他容器类型另一个容器类型。字典包括键对(称为项目)及其相应的值。 Python字典也被称为关联数组或哈希表。字典的...