這是初稿,應該會進一步修改,畢竟圖文並茂更好食用,建議和意見盡管評論吧,一起進步!上一篇在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(這個鏈接要翻牆)鏡像里面把android-sdk-21(這里不用梯子可以放心食用)復制過來,將原來的android-sdk-21重命名為android-sdk-bak(當然你要刪掉它也是可以到)。
打開項目目錄的buildozer.spec,把第151行修改為log_level = 2,這樣就會在打包的時候顯示詳細的debug log便於查找錯誤。
在重新編譯項目前,先刪除項目目錄下的.buildozer,然后運行
buildozer android debug
一切順利的話就會在項目目錄下看到bin目錄,打開bin目錄可以看到生成的apk。