这是初稿,应该会进一步修改,毕竟图文并茂更好食用,建议和意见尽管评论吧,一起进步!上一篇在51cto上面,以后应该会都在这里发了,51cto的博客编辑系统真是磨人的小妖精
0x01 系统配置
系统和python参数
Linux gnu-VirtualBox 3.16.0-23-generic #31-Ubuntu SMP Tue Oct 21 18:00:35 UTC 2014 i686 i686 i686 GNU/Linux
Python 2.7.8
Lubuntu 14.10
0x02 安装kivy
使用新立得下载安装kivy、pygame、cython
设置—软件库--选择最快服务器,刷新
搜索安装python-kivy、pygame、cython、kivy-examples
kivy和pygame位于/usr/lib/python2.7/dist-packages
cython –V
Cython version 0.20.2
kivy-examples位于/usr/share/kivy-examples
现在试运行一个程序
python /usr/share/kivy-examples/guide/firstwidget/1_skeleton.py
0x03 安装openjdk、pyjnius
安装openjdk
使用新立得下载安装open-jdk-7-jdk。
配置环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
export JDK_HOME=$JAVA_HOME
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
安装pyjnius
从github上下载jnius源代码,解压到~/下
sudo python setup.py install
出现警告:Unknown distribution option: 'install_requires'
使用新立得下载安装python-pip、python-setuptools
使用distutils重建tar.gz,用pip安装才行
python setup.py sdist
cd dist
sudo pip uninstall jnius
sudo pip install jnius-1.1-dev.tar.gz
虽然会出现一些错误,但是可以使用。
0x04 安装打包apk需要的一些库
参考http://python-for-android.readthedocs.org/en/latest/prerequisites/ 使用新立得安装zlib1g-dev、build-essential patch git-core ccache libsdl1.2-dev
使用pip安装jinja2,sudo pip install jinja2
0x05 使用buildozer打包apk
sudo pip install buildozer
切换到项目目录下,项目程序入口点所在的源代码文件必须命名为main.py,在该文件的开头添加上你想要的apk包的版本号比如:__version__ = “1.1.0”
buildozer init #在项目目录下生成buildozer.spec
buildozer android debug #会自动下载ant、sdk、ndk
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Install platform
# Android ANT is missing, downloading
# Apache ANT installation done.
# Android SDK is missing, downloading
# Unpacking Android SDK
# Android SDK installation done.
# Android NDK is missing, downloading
# Unpacking Android NDK
在我这里虽然已经***但是下载下来的~/.buildozer/android/platform/android-sdk-21的android sdk manager不能正常下载sdk、build-tools等,所以我从官方提供的buildozer vm(这个链接要FQ)镜像里面把android-sdk-21(这里不用梯子可以放心食用)复制过来,将原来的android-sdk-21重命名为android-sdk-bak(当然你要删掉它也是可以到)。
打开项目目录的buildozer.spec,把第151行修改为log_level = 2,这样就会在打包的时候显示详细的debug log便于查找错误。
在重新编译项目前,先删除项目目录下的.buildozer,然后运行
buildozer android debug
一切顺利的话就会在项目目录下看到bin目录,打开bin目录可以看到生成的apk。