工学社刊/清水美樹著「KivyではじめるPythonプログラミング」( ISBN978-4-7775-1796-1)の関連トピックです。

「KivyではじめるPythonプログラミング」サポートページの目次へ
このサイトの目次へ

KivyアプリをAndroidで - ランチャーアプリ「Kivy Launcher」


概要

専用のランチャー・アプリがKivyアプリを検知して起動する

 このページで解説する方法は、専用のランチャーアプリをAndroid側にインストールする方法です。その名も「Kivy Launcher」。図1のように、「Google Play」から無料でインストールできます。
図1 「Google Play」に公開されている「Kivy Launcher for Android」

SDカードが必要

 一方で、自分で作ったKivyアプリは、Android内の特定のフォルダに置きます。場所は詳しい解説の中で示しますが、SDカード上です。そのため、「Kivy Launcher」を用いるには、AndroidにSDカードを装填する必要があります。

ランチャー・アプリがKivyアプリを検知して起動する

ランチャーアプリ「Kivy Launcher」の役割は、特定のフォルダに置いたKivyアプリを認識して、リスト表示することです。図2のように表示されたリストからどれかを選択して起動します。
図2 リストアップされたアプリをタップすると、起動する
図3 本書で作ったアプリもAndroidで動く(ただし、キー入力を使ったサンプルはスマホ向きではないので、「16touch_come」などが適当です)

使用法と注意点

「Kivy Launcher」用のデモで試してみよう

 このランチャーアプリの使用は、実はそれなりに面倒です。そのため、まず提供されている「Kivy Launcher」用のデモアプリを導入して、動かしてみるのがよいと思います。

「Kivy Launcher」の使用法は、以下の「Instllation on Android」というページに書いてあります。

「Programming Guide」の一部「Create a package for Android」
図4 こんな感じのページ
図4のページの下のほうに、「Installation of Examples(サンプルのインストール法)」という文書があります。
そこに「Kivy demos for Android」というリンクがあります。そのリンクをクリックすると、すぐにサンプルアプリ集である「kivydemo-for-android.zip」というファイルがダウンロードされます。容量は小さいのでダウンロードはすぐ終わります。
図5 リンクをクリックすればすぐにダウンロード(図を過度に縮小しているのは、この図自体をダウンロードリンクと混同されるのを避けるためです)
得られたファイルを展開して、「kivy-demo-for-android」というフォルダが得られます。
中には、「cymunkdemo」「pictures」「showcase」「touchtracer」という4つのアプリ・フォルダが入っています。
図6 4つのデモアプリのフォルダ
これから述べる解説を御利用の上、図6のアプリのどれかを試して、動作を確かめてから自分のアプリに適用するほうが確実です。いきなり自分のアプリで試みると、失敗した場合設定が悪いだけなのかそもそもアプリがAndroid向きでないのか、わからないからです。
図7 これから解説する方法で、デモアプリ「showcase」を実行したところ

メインプログラムの名前は「main.py」

「Kivy Launcher」でKivyアプリを起動するには、アプリのメインプログラムのファイル名を「main.py」とします。図4に示したアプリのフォルダにも、全て「main.py」がメインプログラムです。本書のサンプルも、全て「main.py」という名前にしてあります。

Android用の設定ファイルが必要

アプリのフォルダに、「android.txt」というファイルを置き、そこに「Kivy Launcher」で起動させるための設定を書きます。
内容はごく簡単なので、図6のデモアプリ・フォルダのどれかを開いて、その中の「android.txt」を参考にしてください。図8は、デモアプリ「showcase」フォルダの中身です。
図8 デモアプリ「showcase」のフォルダの中

Kivyアプリの置き場所「/mnt/sdcard/kivy」

 ここからは、図6デモアプリを動かすのでも、自分のデバイスの環境に合わせる工夫が必要かもしれない作業です。

 「Kivy Launcher」で動かすアプリを置く「特別な場所」とは、Android上の「/mnt/sdcard/kivy」フォルダです。
 ところが、機器によってはこの「/mnt/sdcard」に簡単には、アクセスできない場合があります。

 たとえば、筆者の機器「ArrowsX F-10D」をWindowsに接続すると、図8のように「SDカード」としてマウントされているフォルダが表示されますが、ここに「kivy」フォルダを作ってアプリフォルダを置いたところ、「Kivy Launcher」がアプリを見つけてくれませんでした。
図9 「SDカード」というドライブはあるのだが
原因を調べた結果、図9のフォルダは、「/mnt/sdcard」ではなかったのです。「/mnt/sdcard/external_sd」というフォルダでした。
図10は、EclipseでAndroidアプリを開発するときに用いるデバッグ・ツール「DDMS」で利用できるファイルブラウザです。Androidの本体やSDカードの中身を見る事ができます(閲覧専用です)。これが原因を明らかにしてくれました。
図10 Eclipse上で調べた結果
なぜ「素直に」「/mnt/sdcard」にしないのか、理由はわかりませんが、保護(ユーザーが間違って必要なファイルを消してしまう等の防止)が目的かも知れません。
パソコン上で直接「/mnt/sdcard」にアクセスできない場合、SDカードを抜いてPCに直接つなげるか、デバイス上に別途ファイルマネージャを導入するなど、ちと手荒な方法が必要になります。SDカードに大事なデータが入っている場合には、やめたほうがいいでしょう。

 以上、「Kivy Launcher」を用いる方法では、アプリ自体には、変更をほとんど加えません。「android.txt」というファイルを追加するだけです。
しかし、指定された「置き場所」に、手作業でアプリを置かなければいけないのが面倒でもあり、心地が悪くもあります。
別ページに示すような、Kivyアプリを自力で動く標準のAndroidアプリに変換する方法のほうが、手順は面倒ですが妙な手作業をすることはないと言えます。


「KivyではじめるPythonプログラミング」サポートページの目次へ
このサイトの目次へ戻る