利用 Python 和 Kivy 开发移动端应用实战指南
Python 语言虽然功能强大且万能,但用它来开发原生 App 并非其最擅长的领域。因此,使用 Python 开发的 App 通常适用于编码练习、原型验证或自娱自乐。目前这方面的模块生态尚不够成熟,存在较多 Bug,建议开发者谨慎评估需求后再入坑。
准备工作
利用 Python 开发跨平台 App 主要依赖 Kivy 框架。Kivy 是一个开源的、跨平台的 Python 开发框架,用于开发创新的用户界面应用程序。简而言之,这是一个类似 wxPython 的 Python 桌面程序开发框架,但其强大之处在于支持 Linux、macOS、Windows、Android 和 iOS 平台。
虽然 Kivy 是跨平台的,但要将 Python 代码打包成对应平台的可执行程序(如 Android 的 APK),还需要借助打包工具。Kivy 项目官方推荐的打包工具是 Buildozer,它自动化程度高且相对简单。其他项目如 Python-for-android 也能起到类似作用,本文主要介绍 Buildozer。
搭建 Kivy 开发环境
需要在 PC 上安装 Kivy 开发环境。以下演示 macOS 与 CentOS 7 下的安装过程。
macOS 环境安装
-
安装依赖包 使用 Homebrew 安装必要的系统库:
brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer -
安装 Cython 以及 Kivy
pip install cython==0.25 pip install kivy -
备用安装方式 如果通过 pip 安装报错,可以尝试从源码编译:
git clone https://github.com/kivy/kivy python setup.py install -
验证安装 运行 Python 并导入模块:
>>> 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若无报错说明安装成功。
CentOS 7 环境安装
-
安装依赖
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 -
参考文档 若遇到其他问题,可查阅 Kivy 官方 Linux 安装文档。


