以下是基于 Kivy 框架将 Python 程序打包为 Android APK 的详细可行步骤,结合实践验证的代码、工具和操作流程,确保可复现性:
一、环境准备(Linux 或 WSL/虚拟机)
Kivy 官方推荐使用 Buildozer 工具进行 APK 打包,需在 Linux 环境(如 Ubuntu 20.04+)下操作。若使用 Windows,可通过以下方式搭建环境:
- 虚拟机方案(推荐):
- 安装 VirtualBox + Ubuntu 20.04 镜像。
- 在虚拟机中配置共享文件夹,方便与宿主机传输文件。
- WSL 方案:
- 安装 WSL 2 并选择 Ubuntu 发行版。
- 配置国内镜像源加速依赖下载(如阿里云)。
安装基础依赖
# 更新系统并安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libssl-dev
# 安装 Python 3.8+ 和 Kivy
sudo apt install python3 python3-pip
pip3 install kivy
二、安装 Buildozer 和 Android SDK/NDK
Buildozer 是自动化打包工具,需配合 Android SDK/NDK 使用:
# 安装 Buildozer
pip3 install buildozer
# 初始化 Buildozer 配置文件(需在项目根目录执行)
buildozer init
配置 Android SDK/NDK
- 手动下载 SDK/NDK:
- SDK 命令行工具:从 Android 官网 下载
commandlinetools-linux-*.zip
。 - NDK 版本:推荐
r25c
(需与 Buildozer 兼容)。
- SDK 命令行工具:从 Android 官网 下载
- 设置环境变量:
在~/.bashrc
中添加以下路径(替换为实际路径):export ANDROID_SDK_HOME=/path/to/android-sdk export ANDROID_NDK_HOME=/path/to/android-ndk export PATH=$PATH:$ANDROID_SDK_HOME/cmdline-tools/latest/bin:$ANDROID_NDK_HOME
三、编写 Kivy 应用示例
创建一个简单的 Kivy 程序 main.py
:
from kivy.app import App
from kivy.uix.button import Button
class MyApp(App):
def build(self):
return Button(text='Hello Kivy!')
if __name__ == '__main__':
MyApp().run()
验证程序能否运行:
python3 main.py
四、配置 Buildozer (buildozer.spec)
编辑项目目录下的 buildozer.spec
文件,关键配置如下:
# 应用基础信息
title = MyKivyApp # 应用名称
package.name = myapp # 包名(全小写,无特殊字符)
package.domain = org.test # 域名格式
version = 0.1 # 版本号
# 入口文件与依赖
source.dir = . # 代码目录
source.include_exts = py,png,jpg,kv,atlas # 包含的文件类型
requirements = python3,kivy # 依赖库
# Android 配置
android.permissions = INTERNET # 权限
android.api = 33 # Android API 版本
android.ndk = 25.1.8937393 # NDK 版本(需与下载的一致)
# 图标与启动图
icon.filename = icon.png # 512x512 PNG 图标
presplash.filename = presplash.png # 启动图(可选)
五、执行打包命令
在项目目录下运行以下命令开始构建 APK:
buildozer -v android debug # 详细日志输出
关键说明:
- 首次构建耗时较长(约 30 分钟~2 小时),需下载 SDK/NDK 和依赖库。
- 网络问题处理:
- 若下载失败,可手动将缺失文件放入
~/.buildozer/android/packages
对应目录。 - 使用国内镜像源加速(如清华源)。
- 若下载失败,可手动将缺失文件放入
六、测试与部署
- 生成 APK 路径:
成功后在bin/
目录下生成YourApp-0.1-debug.apk
。 - 安装到设备:
- 使用 USB 连接 Android 设备并开启调试模式,执行:
buildozer android deploy run # 自动安装并运行
- 或手动将 APK 传输到设备安装。
- 使用 USB 连接 Android 设备并开启调试模式,执行:
七、常见问题解决
- SSL 错误:
确保系统 OpenSSL 版本 ≥1.1.1,推荐使用 Ubuntu 20.04+。 - 依赖冲突:
指定 Cython 版本:pip3 install cython==0.29.19
。 - SDK/NDK 路径错误:
检查buildozer.spec
中的android.sdk_path
和android.ndk_path
。
八、完整示例代码与工具列表
- 代码示例:GitHub Gist(包含完整
main.py
和buildozer.spec
)。 - 工具清单:
- VirtualBox + Ubuntu 20.04
- Buildozer
- Android SDK/NDK
通过以上步骤,可稳定生成 Kivy 应用的 APK 文件。若需进一步优化(如多架构支持、代码混淆),可参考 Kivy 官方文档。