16. Android 虚拟机
优质
小牛编辑
135浏览
2023-12-01
简介¶
目前,Kivy 的 Android 应用程序构建只能在配置有 python-for-android、 Android SDK 和 NDK 的 Linux 环境进行。这对于 Windows 或者 OS X 的用户来说,搭建起来就有点麻烦,所以 Kivy 官方提供了一个完全配置好的 VirtualBox 虚拟机磁盘镜像,用来减轻自己搭建的哀伤与痛苦。
如果你对于虚拟机不太了解,建议去阅读以下维基百科上面的虚拟机页面。
上手¶
- 首先是到 Kivy 下载页面 找到 Virtual Machine 这一部分。下载的文件超过 2GB ,解压缩之后是大概 6GB。解压缩文件之后别忘掉 vdi 虚拟磁盘的位置。
- 根据你机器的操作系统版本,去 VirtualBox 下载页面 下载对应的安装包,然后安装。
- 启动 VirtualBox,点击新建按钮。然后选择操作系统为 “linux” ,版本设置为 “Ubuntu 64-bit”。
- 在 “Hard drive” 硬盘这个选项,选择“Use an existing virtual hard drive file”,即使用已有的虚拟硬盘文件。这时候找到上面你下载并解压出来的那个 vdi 文件,选中使用它。
- 到虚拟机设置的页面。在“Display -> Video” 显示器->显卡,这一部分,吧显存增加到至少 32MB 以上。启用 3D 加速来提高用户体验。
- 启动虚拟机,然后看看桌面上的 readme 文件,根据指示操作就行了。
构建 APK¶
虚拟机家在之后,就根据 python-for-android 打包指南里面的讲解来构建 APK 文件里了:英文原版,中文翻译版本或者知乎专栏的镜像。也根本不用使用 git clone 下载什么的了,因为虚拟机里面的 python-for-android 已经安装配置好了,就在虚拟系统的 home 目录里面了。
提示建议¶
- 共享文件夹
通常情况下,你的开发环境和工具链都在宿主机中,而 APK 的构建在客户机里面。好在 VirtualBox 提供了共享文件夹的功能,允许你的客户机直接读取宿主机中的某个文件夹。
可以选中‘Permanent’(永久挂载)和 ‘Auto-mount’(自动挂载)这两个选项,这样把构建好的 APK 文件复制到宿主机就更方便了。写一个小脚本就可以很简单地实现自动复制或者移动这个步骤。 - 复制粘贴
默认情况下,宿主机和客户机的剪贴板是不能共享的。可以在“Settings -> General -> Advanced”(设置->通用->高级)中启用 “bi-directional”(双向复制粘贴)的选项。 - 虚拟机快照
如果你正在用 Kivy 开发环境的分支,同步最新版本有时候可能会出问题(Kivy 开发者尽量在避免这种情况)。所以可以在更新之前建立一个虚拟机快照来避免这类问题。这能让你很方便恢复到之前能用的状态。 - 补充内存
如果虚拟机分配的内存不够,可能会因为一些很神奇的错误导致编译失败,比如:
如果出现了上面这种情况,检查一下 Kivy 虚拟机的剩余内存,如果内存不足,就在虚拟机设置里面多增加一些吧。arm-linux-androideabi-gcc: Internal error: Killed (program cc1)