私たちは取り組んでいますS60バージョンとこのプラットフォームは素晴らしいPython APIを持っています..
しかし、Android上のPythonについては公式なものは何もありませんが、Jython存在する、ヘビとロボットを一緒に動作させる方法はありますか?
一つの方法は使うことです意気消沈した:
アプリケーションを迅速に開発するためのオープンソースのPythonライブラリ マルチタッチアプリなどの革新的なユーザーインターフェースを利用すること。
KivyはLinux、Windows、OS X、Android、そしてiOS上で動作します。サポートされているすべてのプラットフォームで同じ[python]コードを実行できます。
新しいものもありますAndroidスクリプト環境(ASE / SL4A)プロジェクト。それは素晴らしく見えます、そしてそれはネイティブのAndroidコンポーネントとある程度統合されています。
注:もはや「アクティブ開発」の下にありませんが、いくつかのフォークはそうかもしれません。
例マットカッツSL4A経由 - 「これが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)
import android as a;d=a.Android();d.startActivity('android.intent.action.VIEW',"http://books.google.com?q=%d"%int(d.scanBarcode()['result']['SCAN_RESULT']))
- Alex L
「Android用PygameサブセットAndroidプラットフォームへのPygame機能のサブセットの移植です。このプロジェクトの目的は、Android固有のゲームを作成し、PCのようなプラットフォームからAndroidへのゲームの移植を容易にすることです。」
例には、APKにパッケージされた完全なゲームが含まれています。これは非常に興味深いものです。
私はAndroid用のPython 2.7.2をクロスコンパイルするための手順とパッチを投稿しました。あなたはそれをここの私のブログで手に入れることができます:http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/
編集:私はオープンソース防火私の2DゲームエンジンはPython / SDLベースで、Android用のクロスコンパイルです。ゲームに使用しなくても、コードとBuilderユーティリティ(Schaferという名前で、Timにちなんで...だれが知っているか)から便利なアイデアを得ることができます。
SL4Aあなたが欲しいものをします。あなたは彼らのサイトからあなたのデバイスに直接それを簡単にインストールすることができ、そしてrootを必要としません。
さまざまな言語をサポートしています。 Pythonは最も成熟しています。デフォルトでは、Python 2.6を使いますが、3.2ポート代わりに使うことができます。私はそのポートをGalaxy S2のあらゆる種類のものに使用しましたが、それはうまくいきました。
SL4Aは彼らのポートを提供しますandroid
サポートされている各言語用のライブラリ。このライブラリは、単一のものを通して基礎となるAndroid APIへのインターフェースを提供しますAndroid
オブジェクト
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つの選択肢があります。
あなたはオプションを混在させることができるので、あなたはメインインターフェースのためにウェブビューを持つことができます、そしてそれでもネイティブの対話を使うことができます。
という名前のサードパーティプロジェクトがありますQPython。それはSL4A上に構築され、そして他のいくつかの有用なものを投入します。
QPythonはあなたのインストールを管理するためのより良いUIをあなたに提供し、そしてパッケージ管理のための小さな、タッチスクリーンコードエディタ、Pythonシェル、そしてPIPシェルを含みます。彼らはまたPython 3ポートを持っています。どちらのバージョンもPlayストアから無料で入手できます。 QPythonは、Kivyを含むAndroidプロジェクト上の多数のPythonからのライブラリーもバンドルしているので、SL4Aだけではありません。
QPythonはまだSL4Aのフォークを開発していることに注意してください(ただし、正直に言ってあまり意味がありません)。メインのSL4Aプロジェクト自体は、ほとんど死んでいます。
としてPython恋人とAndroidのプログラマー、私はこれが本当に良い方法ではないと言って悲しいです。 2つ問題があります。
1つの問題は、Android開発ツールには単なるプログラミング言語以上のものがあるということです。 Androidのグラフィックの多くは、HTMLと同様に、表示を設定するためのXMLファイルを含みます。組み込みのJavaオブジェクトは本当にこのXMLレイアウトと統合されています、そしてロジックからビットマップに行くためにあなた自身のコードを書くよりはるかに簡単です。
もう1つの問題は、G1(そしておそらく近い将来の他のAndroidデバイス)は本当にそれほど速くはないということです。 200 MHzのプロセッサ、およびRAMは非常に限られています。 Javaでさえも、あなたのアプリケーションを完璧に滑らかにしたいのであれば、かなりの量の、より多くのオブジェクトを避けるための書き換えをしなければなりません。 Pythonはまだモバイル機器ではしばらく遅すぎるでしょう。
現時点ではないので、Jythonをすぐに機能させることができて幸運です。今すぐ開発を開始する予定の場合は、当面はJavaにこだわることをお勧めします。
SL4A(これは他の回答ですでに言及されています)を使うと走る本格的なweb2pyインスタンス(その他Python Webフレームワークおそらく同様に候補者です)。 SL4Aでは、ネイティブのUIコンポーネント(ボタン、スクロールバーなど)を使用することはできませんが、サポートしています。Webビュー。 WebViewは基本的に、固定アドレスを指定したストライプWebブラウザにすぎません。ネイティブのGmailアプリは、通常のウィジェットルートではなくWebViewを使用すると思います。
この経路はいくつかの興味深い特徴を持つでしょう。
これを何の拡張として投稿したい@JohnMuddすでに回答しています(英語は私の第一言語ではないので、私と一緒にしてください)
それから何年も経ちましたが、Kivyはv1.9-devに進化しました。私の考えでは、Kivyの最大のセールスポイントはそのクロスプラットフォーム互換性です。ローカル環境(Windows / * nixなど)でコードを作成してテストしたり、Android / iOS / Mac / Windowsデバイスで実行するようにアプリをビルド、デバッグ、およびパッケージ化することもできます。
Kivy自身とKV言語、GUIインターフェイスのコーディングと構築は簡単です(これはJava XMLに似ていますが、TextViewなどとは異なり、KVには独自のものがあります)。ui.widgets
私の意見では、これは採用が非常に簡単です。
現在Buildozerそしてアンドロイド用のpythonアプリをビルド/パッケージ化するための最も推奨されるツールです。私は両方とも試してみましたが、彼らはPythonを使ったAndroidアプリの構築を非常に簡単にしていると言えます。 console / terminal / commandプロンプトで快適に感じることができるユーザーはそれらを使っても問題ないはずです、そして彼らのガイドもよく文書化されています。
さらに、iOSもKivyのもう1つの大きなセールスポイントです。ただし、iOSデバイスでテストを実行するのに必要な変更はほとんどなく、同じコードベースを使用できます。意気消沈したイオス自作ツール、ただしデバイス上で実行する前にXcodeがビルドに必要です(XcodeのiOS Simulatorは、現在のところx86アーキテクチャービルドでは機能しません)。ビルドを成功させるには、Xcodeで手動でコンパイルして混乱させる必要がある依存関係の問題もいくつかありますが、それらを解決するのはそれほど難しくはありません。意気消沈したGoogleグループ本当に参考になります。
言うまでもありませんが、Pythonの知識が豊富なユーザーは、簡単なアプリケーションを構築するのに数週間(数日ではないにしても)で基本を理解しても問題ないはずです。
また、Pythonモジュールをビルドにバンドル(ビルドレシピ)して、ユーザーが実際にPythonで提供される多数の既存ライブラリを利用できるようにすることもできます。リクエスト&PILなどを通じてKivyの拡張サポート。
場合によっては、アプリケーションにはそれ以上の機能が必要です。 Kivyが提供できるものの範囲。そのような場合には、 外部ソフトウェアライブラリに頼る。の豊かさを考える Pythonエコシステム、すでにたくさんのソフトウェアがあります インポートしてすぐに使用できるライブラリ
大事なことを言い忘れていましたが、Kivyをもっと深刻な/商業的なプロジェクトに使用するつもりなら、既存のモジュールは満足できないかもしれません。しかし、いくつかの実行可能な解決策があります。PyjoniaiAndroidの場合ピオブジュス。ユーザーはこれらのモジュールを介してJava / Objective-Cのクラスにアクセスし、いくつかのネイティブAPIを制御できます。
私がKivyで経験したことは、熟練したPythonプログラマーや、素早い開発や単純なコードベースの保守を望む真面目なプログラマーに最適だということです。実際にはそうではありませんが、複数のプラットフォームでうまく動作します。ネイティブ感じ。
私は何人かのPythonアプリプログラマーがこの情報が有用であると思って、Kivyを見始めることを望みます。コミュニティから大きな関心が寄せられている場合にのみ良くなります(より多くのサポートがあり、ライブラリやモジュールが移植されるにつれて)。
P.S私はKivyとは何の関係もありません。私は、Pythonコーディングをモバイル/クロスプラットフォーム開発に面白くするという考えが本当に好きなプログラマーです。
ScreenManager
これにより時間が節約されます。また、彼らのメーリングリスト、あなたを助けることを望んでいるそこに知識豊富な人々の束を読むことも助言の一部です。 - Anzel
QPythonアプリケーションを使います。エディタ、コンソールがあり、あなたはそれを使ってあなたのPythonプログラムを実行することができます。アプリケーションは無料で、リンクはhttp://qpython.com/。
からAndroid用Pythonサイト:
Android用Pythonは、必要なモジュールを含む独自のPythonディストリビューションを作成し、python、libs、およびアプリケーションを含むapkを作成するためのプロジェクトです。
あなたが使用することができますTermux応用:
apt install pythonはpython 3をインストールすることに注意してください。 python 2では、apt install python2と呼んでください。
ここにいくつかのデモ:https://www.youtube.com/watch?v=fqqsl72mASE
そしてまたgithubページ:https://github.com/termux
チャコピーAndroid StudioのGradleベースのビルドシステム用のプラグインです。それは焦点を当てます密接な統合標準のAndroid開発ツールを使って。
それは呼び出すための完全なAPIを提供しますPythonからのJavaまたはJavaからのPython開発者がアプリの各コンポーネントに最適な言語を使用できるようにする。
自動的にダウンロードできますPyPIパッケージそしてNumPyのような選択されたネイティブパッケージを含むアプリにそれらを構築します。
ネイティブユーザーインターフェースツールキットを含む、PythonからすべてのAndroid APIへのフルアクセスを可能にします。純粋なPythonのアクティビティの例)
これは商用製品ですが、オープンソースでの使用は無料であり、常にそのままになります。
(私はこの商品の制作者です。)
あなたが使用することができますQPython:
Pythonコンソール、エディタ、そしてパッケージ管理/インストーラがあります。
Python 2とPython 3の両方の実装を持つオープンソースプロジェクトです。ソースとAndroidの.apkファイルはgithubから直接ダウンロードできます。
QPython 2:https://github.com/qpython-android/qpython/releases
QPython 3:https://github.com/qpython-android/qpython3/releases
これがここに投稿されているのを見ませんでしたが、QtはAndroid上でNecessitasのおかげで動作するので、PysideとQtでそれを行うことができます。
現時点ではかなりの問題だと思われますが、最終的には実行可能な方法になる可能性があります。
あなたが3.4.2または3.5.1を探しているならば、もう一つの選択肢はGitHub上のこのアーカイブです。
Python3-Android 3.4.2またはPython3-Android 3.5.1
現在、Python 3.4.2または3.5.1と10dバージョンのNDKをサポートしています。それはまた3.3および9c、11cおよび12を支えることができます
単純にダウンロードしてmakeを実行すれば、.soまたは.aが手に入ります。
私は現在、Androidデバイス上で生のPythonを実行するためにこれを使用しています。ビルドファイルにいくつか修正を加えれば、x86とarmeabi 64ビットを作ることもできます。
もう1つの選択肢があるようですpyqtdeployドキュメントを引用しているものは:
Qtと共に提供される他のツールと連携して、有効にするツール Pythonで書かれたPyQt4およびPyQt5アプリケーションの配置 v2.7またはPython v3.3以降。デスクトップへの搭載にも対応 プラットフォーム(Linux、Windows、OS X)とモバイルプラットフォーム(iOS、 アンドロイド)。
によるpyqtdeployとQt5を介してPyQt5アプリケーションをAndroidにデプロイするそれは活発に開発されていますが、動作するAndroidアプリの例や必要なすべてのライブラリをAndroidにクロスコンパイルする方法に関するチュートリアルを見つけることは困難です。ただし、覚えておくのは面白いプロジェクトです。
を見てみましょうビーウェア。この質問に答える現在、それはまだ初期の開発段階にあります。その目的は、Androidを含む、サポートされているすべてのオペレーティングシステム用のPythonでネイティブアプリケーションを作成できるようにすることです。
チェックアウトenamlネイティブこれは反応固有の概念を取り、それをpythonに適用します。
それはユーザーがネイティブのAndroidウィジェットでアプリを構築することを可能にし、そしてpythonからのandroidとjavaライブラリを使用するためのAPIを提供します。
それはまたアンドロイドスタジオと統合し、コードのリロードやリモートデバッグのような反応の素晴らしい開発機能のいくつかを共有します。