KivyとBuildozerについて
-
Kivyとは
- PythonのNUIアプリケーション開発用のOSSライブラリ
- https://kivy.org/
-
Buildozerとは
- Pythonアプリケーションをモバイルアプリケーションとして簡易にパッケージングするツール
- AndoroidやiOSアプリを作成できる
- https://github.com/kivy/buildozer
試した環境
本検証は以下の環境で行った。LinuxあるいはMacで実行する必要がある。
- Ubuntu 18.04.2 LTS
- Python 3.7.3
- Android 9
必要なライブラリのインストール
sudo apt-get install -y \
python-pip \
build-essential \
git \
python \
python3 \
python-dev \
python3-dev \
ffmpeg \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libportmidi-dev \
libswscale-dev \
libavformat-dev \
libavcodec-dev \
zlib1g-dev \
automake \
autoconf \
libltdl-dev \
openjdk-8-jdk \
aidl
Python 関連のライブラリのインストール
pip install pygame cython
pip install kivy
Buildozerのインストール
git clone https://github.com/kivy/buildozer
cd buildozer
python setup.py build
pip install -e .
Python サンプルコード
[アプリケーション用ディレクトリ ex:myapp]/main.py
※ ファイル名はmain.pyとしなければならない模様
※ このディレクトリ名は、後述するBuildozer設定ファイルに、パッケージ名として記載しなければならない模様
import kivy
from kivy.app import App
from kivy.uix.label import Label
class HelloWorldApp(App):
def build(self):
return Label(text='Hello World!')
if __name__ == '__main__':
HelloWorldApp().run()
Buildozerの設定ファイルを作成する
アプリケーション用ディレクトリ内でBuildozerを実行し、設定ファイル「buildozer.spec」を作成する。
cd [アプリケーション用ディレクトリ]
buildozer init
設定ファイル「buildozer.spec」を編集する。
最低限、以下の項目は変更しなければならない模様。
package.name = myapp ※ main.pyを格納したディレクトリ名
package.domain = jp.sample.test ※ デフォルトの値から変更しなければならない模様
requirements = python3,kivy,android,plyer
Android端末の設定
-
Android 端末をデベロッパーモードに設定する
- [設定] > [システム] > [端末情報]
- ビルド番号を連打するとデベロッパーモードとなる
-
開発者オプションとUSBデバッグの有効化
- [端末情報] > [システム] > [開発者向けオプション]
- 開発者向けオプション : ON
- USBデバッグ : ON
-
PCにAndroid端末をUSB接続し、「ファイルを転送」を選択
PythonコードからAndoroidパッケージを作成し、USBデバッグする
Linuxで以下を実行すると、Android側でデバッグ実行される。
buildozer android debug deploy run
参考サイト
以下のサイトを参考にさせて頂きました。ありがとうございます。