1 Kivy的官网上已经为我们准备好了VirtualBox的虚拟机镜像,下下来后在Virtualbox中运行即可,无需再自己搭建环境。
https://docs.google.com/uc?export=download&confirm=no_antivirus&id=0B1WO07-OL50_bTR0SElrLTZGWEU
(注意:要访问上面的链接必须*)
2 如果是想研究一下Kivy,不推荐直接用虚拟镜像的方法,还是自己配置一下吧。好,接下来讲怎么做。
3 下载NDK
http://dl.google.com/android/ndk/android-ndk-r8c-linux-x86.tar.bz2
4 下载SDK
http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz
5 把它们解压,如解压到/opt目录下。
6 更新SDK
运行SDK tools目录下的android,打开更新界面,选择需要更新的版本,下载更新
7 安装编译所需的安装包:
sudo apt-get install zlib1g-dev build-essentialopenjdk-7-jdk cython ant
这里需要注意的是,用这种方式安装:cython和ant的版本可能比较旧,满足不了编译的要求,如在编译AndroidJava程序时,要求ant的版本大于1.8,而通过这种方式安装的版本为1.7,这个时候就要自己手动去下载安装了。
下载地址为:
ant
http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.9.3-bin.tar.gz
cython
http://cython.org/release/Cython-0.20.1.tar.gz
ant不用安装,直接解压即可
cython解压后执行命令:python setup.py install进行安装。
8 下载python-for-android
git clonehttps://github.com/kivy/python-for-android.git
也可以去https://github.com/kivy/python-for-android直接下载压缩包。
9 设置环境变量:
export ANDROIDSDK="/path/to/android/android-sdk-linux_86"
exportANDROIDNDK="/path/to/android/android-ndk-r8c"
export ANDROIDNDKVER=r8c
export ANDROIDAPI=14
export PATH=$PATH:/path/to/apache-ant-1.9.3/bin
注意,把路径改成各工具的路径。
10 按下来就是开始编译了:
先cd到python-for-android所在的目录,然后执行:
./distribute.sh -m 'openssl pyjnius pil kivy'
说明一下:
PIL(Python Image Library)是Python下的一个图像处理库
pyjnius 用于在android平台下从Python调用Java代码
kivy 就是我们今天的主角
11 如果一切顺利,很快就能完成整个编译过程,但是在编译的过程中也可能会出现一些错误:
No module named argparse
原因:Ubuntu上装的是Python 1.6,没有这个库
解决方法:
easy_install argparse
wget https not support
原因:wget 1.2不支持https连接
解决方法:
apt-get remove wget
这样,distribute.sh就会用curl来下载软件包
要用的时候再装上。或者更新wget到高版本。
12 接下来就是如何将写好的Python程序打包成apk了
cd dist/default
../../build/hostpython/Python-2.7.2/hostpython build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir../../build/kivy/kivy-stable/examples/demo/touchtracer debug
这样就将examples/demo/touchtracer这个例子打包到apk里了。
生成的路径为:dist/default/bin/touchtracer-1.0-debug-unaligned.apk
13 接下来就是安装程序了:
先用adb连接手机
adb install bin/touchtracer-1.0-debug-unaligned.apk
14 参考文档
https://github.com/kivy/python-for-android