Python for Androidのビルド (2) - Kivy Advent Calendar 2013
VMも動いたのでいよいよビルド作業に入りますが、その前にやっておく作業があります。
ビルド環境の修正
基本的にこのVMイメージは初期状態でPython for Androidのビルドに必要なコマンドはすべてインストールされているため、apt-getやyumで環境構築する必要はありません。
ただ、現在(2013年11月)配布されているイメージは次の問題があり対応が必要になります。
(1) python-for-androidの再取得
ディスクイメージ内に配置してある /home/kivy/android/python-for-android/ は、パス名の問題でPython-2.7.2のコンパイルに失敗します。これはあらためてgithubから最新版を取得・展開すれば解決します。
$ cd python-for-android $ git pull
(2) cythonのアップグレード
Cythonの処理中に「構文が違う」というエラーを返すことになりますので、pipを使って最新版にしておきます。
$ sudo pip install --upgrade cython
Python for Androidのビルド
/home/kivy/android/python-for-android/ に移動して distribute.sh を実行します。
$ ./distribute.sh -m "sqlite3 openssl pyopenssl lxml audiostream cymunk ffmpeg pil pyjnius twisted kivy"
必要なレシピがあればここで追加しておきます。上のコマンドラインはKivyLauncher 1.7.2と同じもので、最終的なAPKのサイズは12〜13MBくらいになります。
レシピの中には現在ビルドできないものもあるようです。この場合 dist/default/ フォルダがの中にファイルが1つもない状態で終了します。問題のレシピを取り除いて再度distribute.shを実行するときは dist/default/ フォルダを一旦削除する必要があります。
distribute.shによってPythonと各種ライブラリがAndroid向け実行ファイルとしてビルドされれば、次はAPKパッケージを作る準備段階になります。念のため次のファイルが作成されていることを確認してください。
(src/ 以下)
- default.properties
- local.properties
- objs/local/armeabi/*.a
- objs/local/armeabi/*.so
- objs/local/armeabi/objs/**
- libs/armeabi/*.so
(dist/default/ 以下)
- build.py
APKパッケージの作成
dist/default/ に移動して build.py を実行します。
$ ./build.py \ --name "Kivy Launcher" \ --package org.kivy.pygame \ --version 1.7.2.1 \ --launcher \ --icon templates/launcher-icon.png \ --presplash templates/launcher-presplash.jpg \ --permission INTERNET \ --permission BLUETOOTH \ release
dist/default/bin/ の下に次のようなファイル名でAPKファイルが作成されます。
KivyLauncher-1.7.2.1-release-unsigned.apk
これをAndroid端末のDownloadsなどのフォルダに送って、ファイラなどで実行するとインストールが始まります。
(あらかじめ「提供元不明のアプリのインストール」を許可しておいてください)