なぜ PY を APK に変換するのですか?
Android アプリは DEX バイトコードを実行する Dalvik/ART 仮想マシン上で動作しますが、Python は DEX にコンパイルされません。APK には AndroidManifest.xml、コンパイル済みクラス、およびリソースが含まれている必要がありますが、プレーンな .py ファイルにはこれらが一切存在しません。Python コードを Android 上で動かすいかなる手法も、APK 内部に完全な CPython インタープリタを同梱する必要があります。
PY から APK への変換方法
Kivy + Buildozer OPEN-SOURCE
Kivy GUI フレームワークを使用してアプリを記述し、Linux 上で Buildozer を実行して、Python ランタイムを含む APK としてクロスコンパイルおよびパッケージ化します。
BeeWare / Briefcase OPEN-SOURCE
BeeWare Toga UI ツールキットを使用してアプリを構築し、briefcase build android を実行して Python インタープリタを同梱した APK を生成します。
これらの形式について
.pyファイルはPythonソースコードファイルです。Python言語で書かれたプログラムやスクリプトを含むプレーンテキストです。コードを読むには、任意のテキストエディタで開いてください。実行するには、python.orgからPythonをインストールし、ターミナルで «python file.py» と入力します。信頼できないソースからの .py…
.PY の詳細を開く →APK ファイルは Android アプリのインストールパッケージです。スマートフォンでファイルをタップし、開いた元のアプリに対して «不明なアプリのインストール» を許可してから、確認を行うことでインストールできます。APK を EXE に変換することはできません。また、サイドローディングは Google Play…
.APK の詳細を開く →品質と注意点
- Kivy/Buildozer も BeeWare も「ファイル変換ソフト」ではありません。どちらもスクリプトを UI フレームワークと Android SDK ツールチェーンを備えた適切なアプリとして再構築する必要があります。
- 生成される APK は、完全な CPython インタープリタが含まれるため、サイズが大きくなります(通常 20-40 MB 以上)。これは Android 上の Python アプリでは避けられません。
- APK をビルドせずに Android デバイス上で
.pyスクリプトを実行したいだけの場合は、Pydroid 3 や Termux などのアプリを使用すると、デバイス上で直接.pyファイルを実行できます。