2024の記事を全く書いてなかったので書きます。年内なのでまだセーフですね!(2024/12/31)
Androidアプリケーションの開発というと「Android SDK」「Android Studio」を使うのがド定番だと思うのですが、Pythonで作る方法もあるとのことなので、Kivyを入れて試してみます。
今使っているPCはZorin OSの16.3なので、実質Ubuntu22.04ということで、その扱いで書きます。
1.pipのインストール
用意したZorin OSはほぼ何も弄っていないので、pipのインストール。
なお、pythonはデフォルトで3.8.10が入っていました。
$ sudo apt install python3-pip
2.Kivyのインストール
KivyはPythonのGUIライブラリらしい。PythonでGUIアプリを使う際のものになるので、AndroidアプリをPythonで作りたいと言ってもこれを使わずとも別のやり方はあると思われる。が、簡単に調べるとだいたいKivyを使った紹介が多いので、前例に習って同じようにインストールしてみます。
pipでインストールすると、実際にはKivy以外にもいろいろインストールされるらしい。
$ pip3 install kivy
(略)
Downloading filetype-1.2.0-py2.py3-none-any.whl (19 kB)
Installing collected packages: pygments, Kivy-Garden, docutils, filetype, kivy
3.Buildozerのインストール
Android端末で実行するためのapkファイルを作成するビルドツール。
こいつでKivyで作ったアプリケーションをAndroid端末で実行できるようにします。
$ pip3 install buildozer
(略)
Successfully installed buildozer-1.5.0 distlib-0.3.9 filelock-3.16.1 platformdirs-4.3.6 sh-2.1.0 virtualenv-20.28.0
・関連ツールのインストール
buildozerだけでは動かないらしいので、関連ツールもインストール。PATHも通します。
$ sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev
$ pip3 install Cython==0.29.33 virtualenv
・PATHの追加
$ export PATH=$PATH:~/.local/bin/
5.プログラムの作成
ディレクトリを切ってプログラムを作ります。いつものHello Worldで。
~$ mkdir program
~$ cd program
~/program $ vi main.py import kivy from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text="Hello World!") if __name__ == '__main__': MyApp().run()
6.ビルドの実行
プログラムを作成したらビルドを実行します。
・ビルドの実施
~/program$ buildozer init
File buildozer.spec created, ready to customize!
実行は即座に完了します。この時点で、buildozer.specというファイルが生成されています。
~/program$ ls
buildozer.spec main.py
specファイルは実行ファイルを作成する際に使われる設定ファイルのこと。
中身を見るといろいろ書かれていますが、どうやらアプリの名前やバージョンはこちらで記述した内容が反映されるようです。
~/program$ vi buildozer.spec
# (str) Title of your application
title = My Application# (str) Package name
package.name = myapp# (str) Package domain (needed for android/ios packaging)
package.domain = org.test(略)
# (str) Application versioning (method 1)
version = 0.1(略)
# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png
→アイコンのパス設定は最初はコメントアウトされている
・実行ファイルの作成
~/program$ buildozer -v android debug
→初回はいろいろなものをダウンロードしたりで20分〜30分ぐらいかかります。# Android packaging done!
# APK myapp-0.1-arm64-v8a_armeabi-v7a-debug.apk available in the bin directory
実行すると、binフォルダとその中でapkファイルが作成されます。
~/program$ cd bin
~/program/bin$ ls
myapp-0.1-arm64-v8a_armeabi-v7a-debug.apk

