Python for Androidのビルド (1) - Kivy Advent Calendar 2013
(※Python for Androidは後半の記事ですが、時間切れのため先行して公開します)
KivyLauncherではopensslやPILなどのモジュールが導入されていて、せいぜいWebサーバと連携して何かやる程度の軽いアプリならあまり困らないのですが、それでも自分でモジュールをインストールしたいなということはあります。
でもAndroidの保護機構のため、Google Playからインストールしたリリース版のKivyLauncherにはライブラリインストールはできません。また /sdcard/kivy/(プロジェクトフォルダ)/ の下に置けばimportで取り込む場合もPythonで記述されたライブラリに限られます。
「Python for Android」というのは文字通りAndroid上で動くPythonをコンパイルするためのキットで、ライブラリの組み込みやAndroidのインストーラパッケージ (APK) を作るツールも含まれています。このビルドオプションに複数アプリを切り替えるランチャーを組み込むものがあり、それをセットしてビルドしたものがKivyLauncherとして公開されているわけです。
KivyLauncherをビルドし直せば次のことが可能になります。
Kivyサイトでは、Android SDK/NDKやビルドに必要なツールをインストールしたLinuxベースの開発環境イメージを配布しています。既存のLinux環境に構築することもできますが、ここではこの開発環境イメージを使って動かすことにします。
Oracle VM VirtualBoxのインストール
Linux、Windows、Mac OS X、Solarisなど、VirtualBoxが動くマシンだったら、環境のセットアップを飛ばして手っ取り早くビルドできるのでオススメです。
まずはVirtualBoxのインストールから。プラットフォームにあったパッケージをダウンロードしてインストールします。
https://www.virtualbox.org/wiki/Downloads
VMの作成
次にVMのイメージを入手します。
http://kivy.org/#download
KivyサイトのVirtual Machinesの項目にある「Kivy Python for android VM」(Googleドライブで公開)をダウンロードします。7-zipという日本ではややマイナーな圧縮形式ですが、展開ツールはすぐ見つかると思います。
ユーザディレクトリ下など適当な場所に展開したら、Oracle VM VirtualBoxを実行して
でセットアップは完了です。
Ubuntuの操作
VMの起動を行うとUbuntuのKDEデスクトップが立ち上がります。
ここから次のようにテキスト端末を開いて、kivyユーザとしてログインします。このVMでのkivyユーザの初期パスワードは「kivy123」で設定されています。
- Ctrl+Alt+F1を押せば全画面のCUIコンソールになり、ログイン待ちになる
- 別のコンソールが必要なら、Ctrl+Alt+F2 〜 Ctrl+Alt+F6 で立ち上がる
- Ctrl+Alt+F7でKDEのデスクトップに戻る
ビルド作業はCUIかターミナルのどちらかで行うことになります。まあ各々好みがあるので問いませんが、速度的にいえばCUIの方がお薦めです。
共有フォルダの設定
ソースファイルや作成されたAPKパッケージなど、VMとホスト機の間でファイルのやり取りができるよう共有フォルダを作っておくといいでしょう。
まずホスト機の適当な場所に共有フォルダshareを作り、VirtualBoxマネージャの「フォルダ共有」でそのフォルダを設定します。
次にゲストOSでmount操作を行えば、shareフォルダを通じてファイルのやり取りができるようになります。
$ mkdir share $ sudo mount -t vboxsf share share