私たちはS60バージョンに取り組んでおり、このプラットフォームには優れた Python API があります。
ただ、AndroidでのPythonについては公式なものはありませんが、Jythonが存在する以上、ヘビとロボットを連携させる方法はありますか??
新しいAndroid Scripting Environment (ASE/SL4A) プロジェクトもあります。見栄えがよく、ネイティブの Android コンポーネントと統合されています。
注: 「アクティブな開発」ではなくなりましたが、いくつかのフォークがある可能性があります。
はい!: Android スクリプト環境
SL4A経由の Matt Cuttsによる例-- 「6 行の Python コードで記述されたバーコード スキャナは次のとおりです。
import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
Pygameは、新しいプログラマーに人気のある Python (デスクトップ) 用の 2D ゲーム エンジンです。Android 用のPygame サブセットは、それ自体を次のように説明しています...
...Pygame 機能のサブセットの Android プラットフォームへの移植。このプロジェクトの目標は、Android 固有のゲームの作成を許可し、PC のようなプラットフォームから Android へのゲームの移植を容易にすることです。
例には、APK としてパッケージ化された完全なゲームが含まれており、これは非常に興味深いものです。
Python愛好家で Android プログラマーとして、残念ながらこれは良い方法ではありません。2 つの問題があります。
問題の 1 つは、Android 開発ツールにはプログラミング言語以上のものがあることです。多くの Android グラフィックには、HTML と同様に、表示を構成するための XML ファイルが含まれます。組み込みの Java オブジェクトはこの XML レイアウトに統合されており、コードを記述してロジックからビットマップに移行するよりもはるかに簡単です。
もう 1 つの問題は、G1 (およびおそらく近い将来の他の Android デバイス) がそれほど高速ではないことです。200 MHz プロセッサと RAM は非常に限られています。Java であっても、アプリを完全にスムーズにするには、オブジェクトの作成を回避するためにかなりの量の書き換えを行う必要があります。Python は、まだモバイル デバイス上でしばらくの間、遅すぎるでしょう。
私のブログには、Android 用の Python 2.7.2 をクロス コンパイルするための手順とパッチがあります。
また、2D ゲーム エンジンであるIgnifugaもオープン ソース化しました。Python/SDL ベースで、Android 用にクロスコンパイルします。ゲームに使用しない場合でも、コードまたはビルダー ユーティリティ ( Tim にちなんでSchaferと名付けられた...誰だかわかります) から役立つアイデアを得ることができます。
SL4Aはあなたが望むことをします。サイトからデバイスに直接簡単にインストールでき、root は必要ありません。
さまざまな言語をサポートしています。Python は最も成熟しています。デフォルトでは Python 2.6 を使用しますが、代わりに使用できる3.2 ポートがあります。そのポートを Galaxy S2 のあらゆる種類のものに使用しましたが、問題なく動作しました。
SL4A は、android
サポートされている言語ごとにライブラリのポートを提供します。このライブラリは、単一のAndroid
オブジェクトを介して、基になる Android API へのインターフェイスを提供します。
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
各言語にはほとんど同じ API があります。Web ビュー内で JavaScript API を使用することもできます。
let droid = new Android();
droid.ttsSpeak("hello from js");
ユーザー インターフェイスには、次の 3 つのオプションがあります。
オプションを組み合わせることができるため、メイン インターフェイスの Web ビューを使用しながら、ネイティブ ダイアログを引き続き使用できます。
QPythonという名前のサードパーティ プロジェクトがあります。SL4A に基づいて構築されており、その他の便利な機能が組み込まれています。
QPython は、インストールを管理するためのより優れた UI を提供し、パッケージ管理用の小さなタッチスクリーン コード エディター、Python シェル、および PIP シェルを含みます。また、Python 3 ポートもあります。どちらのバージョンも Play ストアから無料で入手できます。QPython は、Kivy を含む Android プロジェクトの Python の束からのライブラリもバンドルしているため、単なる SL4A ではありません。
QPython はまだ SL4A のフォークを開発していることに注意してください (ただし、正直言ってあまり多くはありません)。メインの SL4A プロジェクト自体はほとんど死んでいます。
@JohnMudd が Kivy について書いたことに追加したいと思いました。彼が説明した状況から数年が経ち、Kivy は大幅に進化しました。
私の意見では、Kivy の最大のセールス ポイントは、クロスプラットフォームの互換性です。任意のデスクトップ環境 (Windows/*nix など) を使用してすべてをコーディングしてテストし、Android、iOS、MacOS、Windows などのさまざまなプラットフォーム用にアプリをパッケージ化できます (ただし、アプリにはネイティブのルック アンド フィールがないことがよくあります)。
Kivy 独自のKV言語を使用すると、GUI インターフェイスを簡単にコーディングして構築できます (Java XML と同じですが、TextView などではなく、KV にはui.widgets
同様の翻訳用の独自の言語があります)。
現在、 Buildozerとpython-for-androidは、アプリをビルドしてパッケージ化するための最も推奨されるツールです。私は両方を試してみましたが、Python で Android アプリを簡単に作成できると断言できます。彼らのガイドも十分に文書化されています。
iOS は、Kivy のもう 1 つの大きなセールス ポイントです。デバイスで実行する前にビルドに Xcode が必要ですが、 kivy-ios Homebrew ツールを介して必要な変更をほとんど加えずに同じコード ベースを使用できます (現在、Xcode の iOS シミュレーターは x86 アーキテクチャ ビルドでは機能しません)。 . ビルドを成功させるには、Xcode で手動でコンパイルしていじる必要があるいくつかの依存関係の問題もありますが、解決するのはそれほど難しくなく、Kivy Google グループの人々も非常に役に立ちます。
以上のことから、Python の知識が豊富なユーザーであれば、基本をすぐに習得できます。
より深刻なプロジェクトに Kivy を使用している場合、既存のモジュールが不十分であることに気付くかもしれません。ただし、実行可能な解決策がいくつかあります。(開発中の) Android 用の pyjnius とpyobjusを使用すると、ユーザーは Java/Objective-C クラスにアクセスしてネイティブ API の一部を制御できるようになりました。
現時点ではありませんが、Jython がすぐに機能するようになるのは幸運なことです。今すぐ開発を開始する予定がある場合は、今のところ Java に固執する方がよいでしょう。
SL4A(他の回答ですでに言及されています)を使用すると、本格的なweb2pyインスタンスを実行できます(他のpython Webフレームワークも候補になる可能性があります)。SL4A では、ネイティブ UI コンポーネント (ボタン、スクロール バーなど) を使用できませんが、 WebViews はサポートされています。WebView は基本的に、固定アドレスを指し示すストライプ化された Web ブラウザーにすぎません。ネイティブの Gmail アプリは、通常のウィジェット ルートではなく、WebView を使用していると思います。
このルートには、いくつかの興味深い機能があります。
QPython アプリを使用します。これは無料で、コード エディター、対話型インタープリター、およびパッケージ マネージャーが含まれており、デバイス上で直接 Python プログラムを作成および実行できます。
Python for Androidサイトから:
Python for android は、必要なモジュールを含む独自の Python ディストリビューションを作成し、python、libs、およびアプリケーションを含む apk を作成するプロジェクトです。
さらに別の試み: https://code.google.com/p/android-python27/
これは、アプリ apk に Python インタープリターを直接埋め込みます。
3.4.2 以降 (この記事の執筆時点では 3.9.6) を探している場合の別のオプションは、GitHub のこのアーカイブです。
Python3-Android 3.4.2またはPython3-Android 3.9.6
元のアーカイブは Python 3.4.2、最新の GRRedwings ブランチ サポート 3.9.6、および NDK の 22b バージョンをサポートしていると思います。古いブランチは他のバージョンをサポートしますが、docker でコンパイルするのは簡単ではありません。
古いバージョンでは、アーカイブのクローンを作成し、make を実行するだけで、.so または .a を取得できます
新しいバージョンは ReadMe に従いますが、一貫したビルドのために docker を使用します。
現在、これを使用して、Android デバイスで生の Python を実行しています。ビルド ファイルにいくつかの変更を加えることで、x86 および armeabi 64 ビットも作成できます。
これがここに投稿されているのを見ませんでしたが、Necessitas のおかげで Qt が Android で動作するようになったため、Pyside と Qt でそれを行うことができます。
現時点では非常に厄介なように思えますが、最終的には実行可能なルートになる可能性があります...