利用Python和Kivy开发移动App的实战指南
本文详细介绍如何使用Python语言结合Kivy框架开发跨平台移动应用。内容涵盖从环境搭建、依赖安装到编写首个Hello World程序的全过程,并深入解析如何利用Buildozer工具将Python代码打包为Android APK文件,帮助开发者快速入门Python移动端开发。
Python App开发概述与准备工作
早期便有意尝试开发一款移动应用,但因对Java不熟悉且缺乏相关经验而搁置。近期发现利用Python开发App已有可行路径,且存在相对成熟的模块支持,遂决定动手实践。开发过程中虽遇到诸多问题,但通过搜索最终解决,特此记录以便参考。
前置说明
尽管Python功能强大,但其并非开发移动应用的首选语言。使用Python开发App更适合用于编码练习或个人兴趣项目。鉴于目前相关模块成熟度尚不足,存在较多Bug,建议初学者谨慎尝试,避免轻易深入。
准备工作
开发Python App需借助Kivy模块。Kivy是一个开源的跨平台Python开发框架,旨在创建创新型应用程序。本质上,它是一个类似wxPython的桌面程序开发框架,其核心优势在于支持Linux、Mac、Windows、Android及iOS平台,这正是开发移动App所必需的特性。
尽管Kivy支持跨平台,但需将Python代码打包为各平台特定的可执行文件。官方推荐的打包工具是Buildozer,因其操作相对简单且自动化程度高。其他类似工具如python-for-android也可实现类似功能,此处不作展开。
Kivy开发环境搭建
搭建Kivy开发环境
需在PC端安装Kivy开发环境,以下演示在Mac和Linux系统下的安装步骤。
install kivy for mac
首先安装必要的依赖包:
brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
接着安装Cython及Kivy:
pip install cython==0.25
pip install kivy
若直接安装Kivy报错,可尝试以下替代方式:
git clone https://github.com/kivy/kivy
python setup.py install
安装完成后进行测试:
$python
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import kivy
[INFO ] [Logger ] Record log in /Users/didi/.kivy/logs/kivy_18-05-08_4.txt
[INFO ] [Kivy ] v1.10.1.dev0, git-5f6c66e, 20180507
[INFO ] [Python ] v2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
若导入Kivy模块未报错,则表明安装成功。
CentOS 7下安装Kivy
先安装系统依赖:
yum install \
make \
mercurial \
automake \
gcc \
gcc-c++ \
SDL_ttf-devel \
SDL_mixer-devel \
khrplatform-devel \
mesa-libGLES \
mesa-libGLES-devel \
gstreamer-plugins-good \
gstreamer \
gstreamer-python \
mtdev-devel \
python-devel \
python-pip \
java-devel
随后安装Cython和Kivy:
pip install Cython==0.20
pip install kivy
CentOS安装Kivy的官方参考链接:https://kivy.org/docs/installation/installation-linux.html#using-software-packages
其他Kivy安装方式可访问:https://kivy.org/#download(需科学上网)
使用Kivy开发首个应用
使用Kivy开发首个Python App
完成Kivy安装后即可开始开发。此处演示Hello World程序,更复杂的Kivy用法非本文重点,后续将另行撰文介绍。
1) 创建main.py文件,内容如下:
#! -*- coding:utf-8 -*-
from kivy.app import App
class HelloApp(App):
pass
if __name__ == '__main__':
HelloApp().run()
2) 创建hello.kv文件,内容如下:
Label:
text: 'Hello, World! I am nMask'
简要说明:main.py为入口文件,定义了继承自kivy.app的HelloApp类;hello.kv文件用于定义界面风格,其命名规则为类名小写并去除“App”后缀。
运行首个Python App
python main.py
运行结果如图所示:

利用Buildozer打包移动应用
安装Buildozer工具
通过上述编码,我们创建了可在Mac、Linux和Windows平台直接运行的Python App。若要使其在Android或iOS手机上运行,需打包为对应平台的安装包(如Android的APK)。此时需使用前文提到的Buildozer工具。Buildozer的安装过程较为简单:
pip install buildozer
使用Buildozer将Kivy程序打包为APK
在Python项目目录下执行:
buildozer init
运行成功后会生成配置文件buildozer.spec,可通过修改该文件调整App名称等设置,随后执行:
buildozer android debug deploy run
执行上述命令将生成跨平台安装包,适用于Android、iOS等系统。若用于Android,则依赖python-for-android项目。
首次运行上述命令时,系统会自动下载Android SDK等必要文件(如图所示)。此过程可能需要科学上网,且需下载大量依赖项。

以上内容为本文全部,希望对各位的学习有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













