Android StudioでPythonの処理を実行する時のポイント
前々回くらいの続き、
以前の内容を踏襲しつつ改めて、
とりあえず、Android Studioのバージョンは更新して、
空のアクティビティとして新規プロジェクトを開きます。
(個人的に、少し古くて対応してなくて若干躓きました)
build.gradeにプラグインを追加します。
plugins{ }内に下のコードを追加
id 'com.chaquo.python' version '14.0.2' apply false
build.grade(app)にライブラリを追加します。
plugins{ }内に下のコードを追加
id 'com.chaquo.python'
defaultConfig{ }内に下のコードを追加
ここでの注意点は、
Windwosに導入されているpython.exeが、
バージョン3.12以降だと未対応で後でエラーになる点。
(2023年12月初旬時点では、3.11ならとりあえず動く)
//Pythonのライブラリを使うために必要
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
python {
//Pythonのパスを指定 (python.exeは ver3.11)
buildPython "実際のパス/python.exe"
pip {
//Pythonのライブラリをインストールする。
install "numpy"
}
}
※ライブラリを追加する場合は、
上のpip{ }内、install "ライブラリ名" の記述を追加。
加えて、
前回はこれ以下が理解不足でしたが、
ライブラリを使う場合は以下も必要。
settings.gradeにurlを追加します。
repositories { }内に下のコードを追加
// Chaquopyのライブラリを使う場合に必要
maven { url "https://chaquo.com/maven" }
Manifestにも記述を追加します。
<application 内に下のコードを追加
android:name="com.chaquo.python.android.PyApplication"
後は、Activity等に処理を書くと、
Pythonの処理が呼び出せます。
MainActivityに追加した処理例(Java)
//Pythonのインスタンスを取得
Python py = Python.getInstance();
PyObject pyobj = null;
try {
//Pythonのモジュールを取得
pyobj = py.getModule("test");
}catch (PyException e) {
String s = e.toString();
if (!Python.isStarted()) {
Python.start(new AndroidPlatform(this));
}
}
String s = "pyobj is null";
if (pyobj != null) {
try{
//Pythonの関数を取得
PyObject obj = pyobj.callAttr("get_msg", "test");
//Pythonの関数の引数を取得
PyObject val = pyobj.get("val");
//Pythonの関数の戻り値を取得し表示用文字列にセット
s = "msg = " + obj.toString() + ", val = " + val.toString();
}catch (PyException e) {
s = e.toString();
}
}
//TextViewに表示
TextView tv = findViewById(R.id.tv_01);
tv.setText(s);
上のコード内で、py.getModule("test")と、
モジュール名を指定したため、
プロジェクト内のpythonフォルダには、
"test.py"というファイルを追加します。
test.pyの中の記述例(python)
val = 1234567890
def get_msg(msg):
return msg + " OK."
こんな感じでAndroid Studioでも、
Pythonの処理を利用したり、
ライブラリを利用したりできるようです。
ここで使用しているプラグインの公式サイト
Gradle plugin - Chaquopy 14.0
ここで利用したpythonのバージョンはこちら
Python Release Python 3.11.6 | Python.org
-この記事は、アプリ開発経験はあるけどPython未経験という非ITエンジニアが、Android Studio環境でPythonプログラミングを始めるためのステップを紹介します。書き手自身の経験や学びから、Android Studioの具体例を交えて紹介します。
この記事が気に入ったらサポートをしてみませんか?