開発 - AndroidでPythonを実行する方法はありますか?




python interpreter android (17)

私たちはS60バージョンで作業しています。このプラットフォームには素敵なPython APIがあります。

しかし、AndroidにはPythonに関する公式はありませんが、 Jythonが存在するので、ヘビとロボットが一緒に働く方法はありますか?


Android用スクリプトレイヤー

SL4Aはあなたが望むことをします。 自分のサイトからデバイスに直接簡単にインストールすることができ、rootを必要としません。

さまざまな言語をサポートしています。 Pythonは最も成熟しています。 デフォルトでは、Python 2.6を使用しますが、代わりに使用できる3.2ポートがあります。 私はGalaxy S2上のあらゆる種類のものにそのポートを使用しました。

API

SL4Aはサポートされている言語ごとにandroidライブラリのポートを提供します。 ライブラリは、単一のAndroidオブジェクトを介して基礎となるAndroid APIへのインタフェースを提供します。

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

各言語にはほとんど同じAPIがあります。 あなたはwebviewsの中でJavaScript APIを使うことさえできます。

let droid = new Android();
droid.ttsSpeak("hello from js");

ユーザーインターフェイス

ユーザーインターフェイスには、次の3つのオプションがあります。

  • APIを使用して、汎用のネイティブのダイアログとメニューを簡単に使用できます。 これは確認ダイアログやその他の基本的なユーザー入力に適しています。
  • また、Pythonスクリプトの中からWebビューを開いてから、ユーザーインターフェイスにHTML5を使用することもできます。 PythonからWebviewを使用する場合、Webviewとそれを生成したPythonプロセスの間でメッセージを前後に渡すことができます。 UIはネイティブではありませんが、それはまだ良い選択肢です。
  • ネイティブのAndroidユーザーインターフェイスにはいくつかのサポートがありますが、どれくらいうまく動作するかわかりません。 私はこれまで使ったことがない。

オプションを混在させることができるので、メインインターフェイスのWebビューを持ち、ネイティブダイアログを使用することができます。

QPython

http://qpython.com/という名前の第三者プロジェクトがあります。 それはSL4A上に構築され、他の有用なものを投げます。

QPythonは、あなたのインストールを管理するためのより良いUIを提供し、少し、タッチスクリーンコードエディタ、Pythonシェル、およびパッケージ管理のためのPIPシェルを含みます。 彼らはまた、Python 3ポートを持っています。 どちらのバージョンもPlayストアから無料で入手できます。 QPythonは、Kivyを含むAndroidプロジェクトのPythonのライブラリもバンドルしているので、SL4Aだけではありません。

QPythonはまだSL4Aのフォークを開発していることに注意してください(ただし、正直ではありません)。 メインのSL4Aプロジェクト自体はかなり死んでいる。

役に立つリンク

  • SL4Aプロジェクト(現在GitHub上): SL4A : SL4A
  • SL4A Python 3 Port: https ://code.google.com/p/python-for-android/wiki/Python3
  • QPythonプロジェクト:http://qpython.com

Kivy

@JohnMuddがすでに答えているものの拡張子として投稿したい( ただし、英語は私の母国語ではないので私に負担してください

それ以来数年を経ており、Kivyはv1.9-devに発展しました。 私の意見では、Kivyの最大のセールスポイントは、クロスプラットフォームの互換性です。 ローカル環境(Windows / * nixなど)でコード化とテストを行うことができます。また、Android / iOS / Mac / Windowsデバイスで実行するようにアプリケーションをビルド、デバッグ、パッケージ化することもできます。

Kivy独自のKV言語を使用すると、GUIインターフェイスを簡単にコーディングしてビルドすることができます(Java XMLと同様ですが、TextViewなどではなく、KVに同様の翻訳のための独自のui.widgetsがあります)。採用。

現在Buildozerpython-for-androidは、あなたのアプリケーションをビルド/パッケージ化するために最も推奨されるツールです。 私はそれらを試してみましたが、Pythonを使ってAndroidアプリを簡単に作ることができると確信しています。 コンソール/ターミナル/コマンドプロンプトで快適に感じるユーザーは、問題なく使用することができ、ガイドも十分に文書化されています。

さらに、Kivy kivy-ios Homebrewツールを使用して、iOSデバイスでのテスト実行に必要な変更を加えずに、同じコードベースを使用できるという条件で、iOSもKivyの大きなセールスポイントです。それらのデバイス(現在、XcodeのiOSシミュレータをAFAIKしても、x86アーキテクチャのビルドでは動作しません)。 ビルドに成功するためには、Xcodeで手作業でコンパイルして手間をかけなければならないいくつかの依存関係の問題もありますが、解決するのが難しくなく、 Kivy Google Groupの人々も本当に役に立ちます。

Pythonの優れた知識を持つユーザーは、単純なアプリケーションを構築するために数週間で数週間で基本を取り上げることができます。

また、Pythonモジュールをビルドでバンドル(レシピをビルド)することで、PythonがKivyの拡張機能によるRequestsPILなどのような多くの既存のライブラリを実際に利用できるようになります。

アプリケーションに、Kivyが提供できる範囲を超えた機能が必要になることがあります。 そのような場合、外部のソフトウェアライブラリに頼る必要があります。 Pythonエコシステムの豊かさを考えると、すぐにインポートしてすぐに使えるソフトウェアライブラリがたくさんあります。

あなたがKivyをより深刻な/商用プロジェクトに使用しようとするなら、あなたは既存のモジュールが満足のいくものではないかもしれません。 Android用のpyjniuspyjnius 「進行中の作業」で、実行可能な解決策がいくつかあります。 ユーザーは、これらのモジュールを介してJava / Objective-Cクラスにアクセスして、ネイティブAPIの一部を制御できるようになりました。

私がKivyで経験したのは、シーズンに入ったPythonプログラマーや、急速な開発や簡単なコードベースのメンテナンスを望む深刻なプログラマーに最適です。 それは、 ネイティブな感覚ではありませんが、複数のプラットフォームでうまく動作します。

私はいくつかのPythonアプリのプログラマーがこの情報を見つけて、Kivyを見て欲しいと願っています。 コミュニティから大きな関心が寄せられているのであれば、より多くのサポートとライブラリ/モジュールが移植されるようになり、より良い結果が得られます。

PS私はKivyと何の関係も持っていません。私は単にPythonのコーディングの楽しみをモバイル/クロスプラットフォーム開発にもたらすというアイディアが本当に好きなプログラマーです。


1つの方法はKivyを使うことです:

マルチタッチアプリケーションなどの革新的なユーザーインターフェイスを使用するアプリケーションの迅速な開発のためのオープンソースのPythonライブラリ。

KivyはLinux、Windows、OS X、Android、iOSで動作します。 サポートされているすべてのプラットフォームで同じ[python]コードを実行できます。

Kivy Showcaseアプリ


3.4.2または3.5.1を探している場合、GitHubのこのアーカイブも別のオプションです。

Python3-Android 3.4.2またはPython3-Android 3.5.1

現在、Python 3.4.2または3.5.1とNDKの10dバージョンをサポートしています。 また、3.3と9c、11cと12をサポートすることもできます

あなたが単にそれをダウンロードし、makeを実行し、あなたが.soか.aを取得するのはうれしい

私は現在、アンドロイドデバイス上で生のPythonを実行するためにこれを使用しています。 ビルドファイルをいくつか変更して、x86とarmeabiを64ビットにすることもできます


Python 2.7.2をAndroid用にクロスコンパイルするための手順とパッチを投稿しました。私のブログで入手できます: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/ : http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

編集:私はオープンソースのIgnifuga 、私の2Dゲームエンジン、それはPython / SDLベースであり、Android用にクロスコンパイルします。 あなたがゲームのために使っていないとしても、コードとビルダーユーティリティ(Schafer、Timの後に誰かを知っています)から有用なアイデアを得るかもしれません。


QPythonアプリケーションを使用します。 それはエディタ、コンソールを持ち、Pythonプログラムをそれと共に実行することができます。 アプリケーションは無料で、リンクはhttp://qpython.com/です。


sl4aを使用してPythonコードを実行できます。 sl4aは、Python、 PerlJRubyLua 、BeanShell、JavaScript、 Tcl 、およびシェルスクリプトをサポートしています。

sl4aのPythonの例を学ぶことができます。


Python恋人とAndroidのプログラマーとして、これは実際には良い方法ではないと言って悲しいです。 2つの問題があります。

1つの問題は、Android開発ツールに単なるプログラミング言語以上のものがあることです。 多くのAndroidグラフィックスには、HTMLと同様にXMLファイルが表示されます。 組み込みのJavaオブジェクトは実際にはこのXMLレイアウトと統合されており、ロジックからビットマップへ行くための独自のコードを書くよりもずっと簡単です。

他の問題は、G1(と近い将来の他のAndroidデバイス)が本当に速くないということです。 200 MHzプロセッサ、RAMは非常に限られています。 Javaの場合でも、あなたのアプリを完全に滑らかにしたい場合は、オブジェクトの作成を避けるために書き直しを行う必要があります。 Pythonはモバイル機器ではまだまだ遅いです。


github.com/kivy/python-for-androidサイトから:

Python for androidは、あなたが望むモジュールを含むPythonディストリビューションを作成し、python、libs、そしてあなたのアプリケーションを含むapkを作成するプロジェクトです。



Android用Pygameサブセットは 、Androidプラットフォーム向けのPygame機能のサブセットのポートです。このプロジェクトの目標は、Android固有のゲームの作成を許可し、PCのようなプラットフォームからAndroidへのゲームの移植を容易にすることです"

この例には、APKにパッケージされた完全なゲームが含まれていますが、これはかなり興味深いものです。


QPythonを使うことができます:

Python Console、Editor、Package Management / Installersがあります

http://qpython.com/

Python 2とPython 3の両方を実装したオープンソースプロジェクトです。 ソースとAndroidの.apkファイルはgithubから直接ダウンロードできます。

QPython 2: https://github.com/qpython-android/qpython/releases : https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases : https://github.com/qpython-android/qpython3/releases


これはここに掲載されていませんでしたが、PysideとQtを使って、NecessitasのおかげでAndroid上でQtが動作するようになりました。

それは現時点でかなりのようなものだが、最終的に実行可能なルートになる可能性がある...

http://qt-project.org/wiki/PySide_for_Android_guide


もう1つのオプションは、docsを引用するpyqtdeployと思われる:

Qtに付属している他のツールと共に、Python v2.7またはPython v3.3以降で作成されたPyQt4およびPyQt5アプリケーションのデプロイメントを可能にするツールです。 デスクトッププラットフォーム(Linux、Windows、OS X)、モバイルプラットフォーム(iOS、Android)への展開をサポートしています。

pyqtdeployとQt5を使ってPyQt5アプリケーションをAndroidデプロイすることによれば、それは積極的に開発されていますが、Androidアプリの使用例や、必要なライブラリをAndroidにクロスコンパイルする方法についてのチュートリアルはありません。 それは心に留めておきたい興味深いプロジェクトです!



反応のネイティブコンセプトをとり、それをPythonに適用するenaml-nativeをチェックしてください。

これは、ユーザーがネイティブのAndroidウィジェットを使用してアプリケーションを構築し、PythonのAndroidおよびJavaライブラリを使用するためのAPIを提供します。

また、アンドロイドスタジオと統合し、コードリロードやリモートデバッグのような反応の良いdevの機能のいくつかを共有します。


現時点では、あなたはすぐにJythonを動作させることができてラッキーです。 開発を始めようと計画しているのであれば、今のところJavaに固執するだけで良いでしょう。







android-scripting