ビルドオプション

This page contains instructions for using different build options.

Pythonのバージョン

python2

これを要件に追加して選択します。例:--requirements=python2

このオプションは選択したAndroidアーキテクチャ用のPython 2.7.2をビルドします。特別な要件はありません、すべてのビルドはローカルで行われます。

python2のビルドは古いツールチェーンでもPython-for-androidが元々動いていていた方法です。

python3

警告

Python3のサポートは実験的なものであり、改良されて完全に安定するために詳細の一部が変更される可能性があります。

注釈

CrystaX NDK を手動でダウンロードしてpython-for-androidに --ndk-dir /path/to/NDK と一緒に使用するう指示する必要があります。

選択するには、python3crystax レシピを要件に追加します。 --requirements=python3crystax

これは、CrystaX NDK のプレビルドされたPythonを使用しています。CrystaX NDKはGoogleの公式NDKの代替品で多くの改良が加えられています。 Python3でビルドする場合は、CrystaX NDK 10.3.0以降を必ず使用します。 ここ から取得できます

python3crystaxのビルドはpython2とはかなり異なって扱われるので、バグや驚くべき動作があるかもしれません。あなたが何かを見つけた場合は、自由に issue を書く ことができます。

ブートストラップのオプション

python-for-android supports multiple app backends with different types of interface. These are called bootstraps.

以下のブートストラップがサポートされていますが、プロジェクトに異なる要件がある場合は他のブートストラップを簡単に追加できることを願っています。新しいものを追加するのを助けたいかどうを 連絡 してください。

sdl2

--bootstrap=sdl2 とともに使用するか、 sdl2 レシピを含めておいてください。--requirements=sdl2,python2

SDL2は特にゲーム向けの一般的なクロスプラットフォームの開発ライブラリです。 Android用のPythonがブートストラップとして使用する独自のAndroidプロジェクトサポートを持ち、PythonビルドとJNIコードを追加して起動します。

Pythonプログラムの観点から見るとSDL2は正常に動作するはずです。 例としてKivyやPySDL2を使ってアプリケーションでビルドされたアプリはブートストラップで動作できます。 また使用することも可能です。 pygame_sdl2はビルドレシピが必要ですがまだ作成されていません。

ビルドオプション

sdl2ブートストラップは以下の追加のコマンドラインオプションをサポートしています(このリストは網羅的ではありません)。

  • --private: プロジェクトファイルを含むディレクトリ。

  • --package: プロジェクトのJavaパッケージ名。例: org.example.yourapp

  • --name: アプリケーションの名前

  • –version``: バージョン番号

  • --orientation: 通常はデバイスの向きに応じて自動的に回転するか、 portait, landscape, sensor のどれか一つ。またはユーザーの設定に従います。有効なオプションの完全なリストは、Android documentationandroid:screenOrientation にあります。

  • --icon: “アプリケーションアイコンとして使用するpngファイルへのパス

  • --permission: アプリのパーミッションの名前です(例:--permission VIBRATE 。複数の権限の場合は複数の --permission 引数を追加します。

  • --meta-data: “アプリケーションのメタデータに追加するカスタムキー=値のペア

  • –presplash``: アプリケーションのロード中に画面として使用するイメージファイルへのパス。

  • --presplash-color: #RRGGBB 形式のpresplash画面の背景色、または red, green, ``blue``などの色名。

  • --wakelock: 引数が含まれている場合、アプリケーションはデバイスのスリーブをカバーします。

  • --window: 引数が含まれている場合、アプリケーションはAndroidステータスバーをカバーしません。

  • --blacklist: 最終的なAPKから除外されるブラックリストに載ったパターンを含むファイルへのパス。デフォルトは ./blacklist.txt です。

  • --whitelist: ブラックリストに記載されていてもAPKに含まれるホワイトリストに登録されたパターンを含むファイルへのパス。

  • --add-jar: APKに含める.jarファイルへのパス。複数のjarファイルをインクルードするにはこの引数を複数回渡します。

  • --intent-filters: AndroidManifest.xmlに含めるインテントフィルタxmlを含むファイルパス。

  • --service: “サービス名と実行すべきPythonスクリプト。 Arbitrary service scripts を参照してくださ

  • --add-source: アプリケーションのJavaコードにソースディレクトリを追加します。

  • --no-compile-pyo: ”.pyファイルを.pyoに最適化させない

webview

--bootstrap=webview とともに使用するか、 webviewjni レシピを含めることができます。 --requirements=webviewjni,python2

webviewブートストラップguiは名前ごとにウェブページを表示するWebViewですが、ページはPython Webサーバー経由でデバイス上にホストされています。 例えばあなたのPythonコードはFlaskアプリケーションを起動できて、アプリケーションはWebサイトを表示してユーザがこのWebサイトをナビゲートできるようにします。

注釈

あなたのFlaskスクリプトは、コードなし( :debug=True )でWebサーバーを起動する必要があります。 デバッグモードはサブプロセスを使用しているためAndroid上で動作していないようです。

このブートストラップは自動的にポート5000(Flaskのデフォルト)でWebサイトをロードしようとするか、 –port コマンドラインオプションで別のオプションを指定することができます。 Webサーバーがすぐに存在しない場合(たとえば、最初に起動したPythonの読み込み時間が短い場合など)、サーバーの準備ができるまで読み込み画面が表示されます。

  • --private: プロジェクトファイルを含むディレクトリ。

  • --package: プロジェクトのJavaパッケージ名。例: org.example.yourapp

  • --name: アプリケーションの名前

  • –version``: バージョン番号

  • --orientation: 通常はデバイスの向きに応じて自動的に回転するか、 portait, landscape, sensor のどれか一つ。またはユーザーの設定に従います。有効なオプションの完全なリストは、Android documentationandroid:screenOrientation にあります。

  • --icon: “アプリケーションアイコンとして使用するpngファイルへのパス

  • -- permission: アプリのパーミッションの名前です(例:--permission VIBRATE 。複数の権限の場合は、複数の --permission 引数を追加します

  • --meta-data: “アプリケーションのメタデータに追加するカスタムキー=値のペア

  • –presplash``: アプリケーションのロード中に画面として使用するイメージファイルへのパス。

  • --presplash-color: #RRGGBB 形式のpresplash画面の背景色、または red, green, ``blue``などの色名。

  • --wakelock: 引数が含まれている場合、アプリケーションはデバイスのスリーブをカバーします。

  • --window: 引数が含まれている場合、アプリケーションはAndroidステータスバーをカバーしません。

  • --blacklist: 最終的なAPKから除外されるブラックリストに載ったパターンを含むファイルへのパス。デフォルトは ./blacklist.txt です。

  • --whitelist: ブラックリストに記載されていてもAPKに含まれるホワイトリストに登録されたパターンを含むファイルへのパス。

  • --add-jar: APKに含める.jarファイルへのパス。複数のjarファイルをインクルードするにはこの引数を複数回渡します。

  • --intent-filters: AndroidManifest.xmlに含めるインテントフィルタxmlを含むファイルパス。

  • --service: “サービス名と実行すべきPythonスクリプト。 Arbitrary service scripts を参照してくださ

  • add-source: アプリケーションのJavaコードにソースディレクトリを追加します。

  • --port: WebViewがアクセスするlocalhost上のポートです。デフォルトは5000です。

pygame

--bootstrap=pygame と一緒に使うこともできますし、単純に pygame のレシピをあなたの --requirements に含めることもできます。

Pygameのブートストラップは、もとはKivyで使用されていたバックエンドでKivyアプリで使用するには問題ありません。 純粋なpygameアプリでも動作するかもしれませんが、これを念頭に置いて開発されていません

このブートストラップは最終的にはsdl2を優先して廃止されますが、sdl2のブートストラップには失われるすべての機能が含まれています。

ビルドオプション

pygameのブートストラップは、次の追加のコマンドラインオプションをサポートしています(このリストは網羅的ではありません)。

  • --private: プロジェクトファイルを含むディレクトリ。

  • --dir: プロジェクトのプライベートディレクトリではなく、外部のストレージディレクトリに展開する場合は、プロジェクトファイルを格納するディレクトリ。

  • --package: プロジェクトのJavaパッケージ名。例: org.example.yourapp

  • --name: アプリケーションの名前

  • –version``: バージョン番号

  • –orientation`: デバイスの向きに応じて自動的に回転する、portait, landscape または sensor のどれか。

  • --icon: “アプリケーションアイコンとして使用するpngファイルへのパス

  • --ignore-path: アプリケーションファイルを含めるときに無視するパス。複数のパスを無視するには複数回パスします。

  • -- permission: アプリのパーミッションの名前です(例:--permission VIBRATE 。複数の権限の場合は、複数の --permission 引数を追加します

  • --meta-data: “アプリケーションのメタデータに追加するカスタムキー=値のペア

  • –presplash``: アプリケーションのロード中に画面として使用するイメージファイルへのパス。

  • --wakelock: 引数が含まれている場合、アプリケーションはデバイスのスリーブをカバーします。

  • --window: 引数が含まれている場合、アプリケーションはAndroidステータスバーをカバーしません。

  • --blacklist: 最終的なAPKから除外されるブラックリストに載ったパターンを含むファイルへのパス。デフォルトは ./blacklist.txt です。

  • --whitelist: ブラックリストに記載されていてもAPKに含まれるホワイトリストに登録されたパターンを含むファイルへのパス。

  • --add-jar: APKに含める.jarファイルへのパス。複数のjarファイルをインクルードするにはこの引数を複数回渡します。

  • --intent-filters: AndroidManifest.xmlに含めるインテントフィルタxmlを含むファイルパス。

  • --service: “サービス名と実行すべきPythonスクリプト。 Arbitrary service scripts を参照してくださ

  • add-source: アプリケーションのJavaコードにソースディレクトリを追加します。

  • --compile-pyo: .pyファイルを.pyoに最適化しません。

  • --resource: string.xmlリソースファイルに追加するkey=value のペア。