web-dev-qa-db-ja.com

KivyとPY4Aの違い

私はAndroid開発に不慣れで、Java、C#、Pythonなどでいくつかの経験があります。Python私のお気に入りでありたいAndroidアプリをコード化するには.
そして私はこの質問を見ました:
Pythonを実行する方法はありますか?
最も投票された回答はKivyASEに言及しました(現在はSL4Aで、PY4Aが含まれています)。
しかし、グーグル操作を行った後、KivyPY4Aの違いに関する有用な情報を見つけることができませんでした。 KivySL4Aの違いの検索も無駄でした。

したがって、KivyPY4Aについては、
誰かが簡単に説明できますか:
-それらの類似点と相違点は何ですか?
-彼らの良い部分と悪い部分は何ですか?
-他に良い代替案はありますか?

28
octref

紛らわしいことに、「Python for Android」と呼ばれる2つのプロジェクトがあります。

SL4Aを使用すると、Androidでpythonスクリプトを実行できます。彼らのPY4Aは彼らのツールチェーンにおける一歩ですが、私はそれについてあまり知りません。 Android AP​​Iとの一部の統合(一部のハードウェアなどを使用できます)はありますが、プログラムの実行方法には制限があります(完全なアプリではなく、GUIなどもありません)。これは私が他の投稿を見て推測したもので、試したことはありません。詳細についてはWordを取り上げないでください。 (編集:実際にはapkをパッケージ化する機能とGUIを作成する複数の方法があるようです、詳細はわかりません)

Kivyは、多くのオペレーティングシステムをサポートするグラフィカルフレームワークです(linux、windows、osx、Android、iosなど)。 python guiをビルドするために使用します。 kivyプロジェクトはpythonのAndroidインタープリターをコンパイルして実際のAndroidアプリとしてパッケージ化する方法を提供する独自のpython-for-Androidプロジェクトも開始しました(Java pyjniusとのapi統合などを含む)。このpython-for-Androidはkivyアプリに限定されているとは思いませんが、Kivyはよく統合されているため、簡単にAndroid用のpython guiアプリをコンパイルできます。

したがって、これらはまったく同じプロジェクトであり、偶然同じ名前のコンポーネントを持っています。 SL4AはAndroidでpythonスクリプトを実行するためのものです。その制限や詳細についてはあまり知りません。 Kivyはpythonグラフィカルフレームワーク(Androidに限定されません)であり、独自のpython-for-Androidプロジェクトを介して完全に統合されたgui Androidアプリにコンパイルできます。

(たとえば) kivy showcase は、いくつかの単純なkivy機能の例を示しています。 flat jewels は、kivyで作成された単純なゲームの例を示しています。これらは単なる例であり、さらに多くのことが可能です。

25
inclement

私はこれが非常に便利である(そして最近)ことがわかりました:

埋め込みPython in Android(チュートリアルシリーズ)

http://techventura.wordpress.com/2014/04/21/embedding-python-in-Android-series/

PythonをAndroidアプリに埋め込む方法です。Kivy関連のPython-for-Androidを使用しますが、Kivy自体ではありません)さまざまなシナリオ(たとえば、既存のJavaアプリ、ネイティブGUIを直接使用するなど)で便利です)は、KivyやAndroid-for-Androidのドキュメントに記載されています)

KivyのPython-for-AndroidはSL4A(ASE)のPy4Aよりも積極的に開発されているので、私にはそれが進むべき道のようです。

(私はそれも非常に関連性があり、おそらくより適切だと思います Pythonを実行する方法はありますか? ですが、回答するには、私は現在持っています。)

元の質問の要点:KivyのPython-for-AndroidとSL4A(ASE)のPy4Aの間で最も関連する違いは、後者は今日でも「アルファ品質」として提供されているが、前者は遠いようですよりアクティブ。もちろん、全体としてKivyを取れば、それはクロスプラットフォームのGUIライブラリです。

また、さまざまなソリューションに関する私の研究の結果:

  • GoogleのPy4A + SL4A(ASE):使用されていますが、積極的に開発されていません
  • Kivy
    • android向けのPythonを提供して、Javaからpythonコードを呼び出す
    • pyjniusを提供して、Javaコードを呼び出す
    • 積極的に開発されているようです
    • Java Android appに埋め込むために上でリンクしたチュートリアルがあります
    • 興味があれば、クロスプラットフォームGUI(Kivy自体)
  • QPython
    • 主にAndroidでpythonスクリプトを起動するインタラクティブな環境
    • py4Aに基づいていますが、Pyjnius(上記を参照)は使用可能と言われています
    • Javaアプリは利用可能ですが、多少制限があります:a Pythonジョブはインテントで開始する必要があり、結果はstdoutから収集されます。つまり、いくつかのシナリオでは望ましいかもしれないより多くの分離は、私は思います。
  • python.org:すべてのAndroidで言及されていません
9
GozzoMan

QPythonを試しましたか?これは新しいpython for Androidインスタンス用で、より多くの機能を提供します。

1
River

ここでの回答に加えて、活発に開発されているように見える元のPy4Aのフォークを追加します。 https://github.com/kuri65536/sl4a

品質や使いやすさは保証できません。インストールする.apksがあるので、かなり簡単に思えます。

0
Alen Siljak