質問

私たちは次のことに取り組んでいます S60 バージョンとこのプラットフォームには優れた Python API があります。

ただし、Android 上の Python については公式には何もありませんが、 ジトン 存在しますが、ヘビとロボットを協力させる方法はありますか??

役に立ちましたか?

解決

1つの方法は、使用することです キビー:

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

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

Kivy ショーケース アプリ

他のヒント

新しいのもあるよ Android スクリプト環境 (ASE/SL4A) プロジェクト。見た目も素晴らしく、ネイティブ Android コンポーネントとの統合も行われています。

注記:現在は「アクティブな開発」下にありませんが、一部のフォークは存在する可能性があります。

はい!: 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)

それもあります SL4A Google 従業員によって大部分が書かれています。

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

サンプルには、APK にパッケージ化された完全なゲームが含まれており、これは非常に興味深いものです。

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

編集:オープンソース化しました イグニフガ, 、私の 2D ゲーム エンジンは Python/SDL ベースで、Android 用にクロスコンパイルします。ゲームに使用しない場合でも、コードやビルダー ユーティリティ (Tim にちなんで Schafer という名前です...ご存知の通り) から役立つアイデアが得られるかもしれません。

Android 用のスクリプト レイヤー

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

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

API

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 つのオプションがあります。

  • APIを介して、一般的なネイティブダイアログとメニューを簡単に使用できます。これは、確認ダイアログやその他の基本的なユーザー入力に適しています。
  • また、Pythonスクリプト内からWebViewを開き、ユーザーインターフェイスにHTML5を使用することもできます。PythonのWebViewsを使用すると、WebViewとPythonプロセスの間でメッセージをやり取りすることができます。UIはネイティブではありませんが、それでも良い選択肢です。
  • がある いくつかの ネイティブAndroidユーザーインターフェイスのサポートですが、それがどれだけうまく機能するかはわかりません。ただ使ったことがないんです。

オプションを組み合わせることができるため、メイン インターフェイスに Web ビューを使用しながら、ネイティブ ダイアログを使用することができます。

QPython

という名前のサードパーティプロジェクトがあります QPython. 。SL4A をベースに構築されており、その他の便利なものが組み込まれています。

QPython は、インストールを管理するための優れた UI を提供し、小さなタッチスクリーン コード エディター、Python シェル、パッケージ管理用の PIP シェルが含まれています。Python 3 ポートもあります。どちらのバージョンも Play ストアから無料で入手できます。QPython には、Kivy を含む Android 上の多数の Python プロジェクトのライブラリもバンドルされているため、SL4A だけではありません。

QPython は依然として SL4A のフォークを開発していることに注意してください (ただし、正直に言うとそれほど多くはありません)。メインの SL4A プロジェクト自体はほぼ終わっています。

役立つリンク

として パイソン 恋人であり Android プログラマーである私にとって、これは本当に良い方法ではないと言うのは悲しいことです。問題は 2 つあります。

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

もう 1 つの問題は、G1 (およびおそらく近い将来の他の Android デバイス) が実際にはそれほど高速ではないことです。200 MHz プロセッサと RAM は非常に限られています。Java でも、アプリを完全にスムーズにしたい場合は、オブジェクトの追加作成を避けるためにかなりの量の書き換えを行う必要があります。Python は、モバイル デバイス上ではしばらくは遅すぎるでしょう。

キビー


の延長としてこれを投稿したいと思います @JohnMudd すでに答えています(でも英語は私の第一言語ではないのでご容赦ください)

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

キビィ自身のものと KV 言語を使用すると、GUI インターフェイスを簡単にコーディングして構築できます (Java XML に似ていますが、TextView などではなく、KV には独自のインターフェイスがあります) ui.widgets 私の意見では、これは採用するのが非常に簡単です。

現在 ビルザー そして Python-for-Android アプリを構築/パッケージ化するために最も推奨されるツールです。私は両方を試してみましたが、Python を使用した Android アプリの構築が簡単になると断言できます。コンソール/ターミナル/コマンド プロンプトに慣れているユーザーであれば、問題なく使用できるはずです。また、そのガイドも十分に文書化されています。

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

以上のことを踏まえると、Python の十分な知識があるユーザーであれば、数日ではないにせよ数週間で基礎を習得して簡単なアプリを構築することに問題はないはずです。

また、言及する価値があるのは、Python モジュールをビルドにバンドル (レシピをビルド) できるため、ユーザーは Python が提供する多くの既存のライブラリを実際に利用できることです。 リクエスト & ピル 等を通して Kivy の拡張機能のサポート.

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

最後になりましたが、Kivy をより本格的/商業的なプロジェクトに使用しようとしている場合、既存のモジュールでは満足できないと感じるかもしれません。ただし、実行可能な解決策はいくつかありますが、「作業中」です。 ピジニウス アンドロイド用、そして ピオブジュス. 。ユーザーはこれらのモジュールを通じて Java/Objective-C クラスにアクセスし、ネイティブ API の一部を制御できるようになりました。

Kivy での私の経験では、経験豊富な Python プログラマーや、迅速な開発やシンプルなコード ベースのメンテナンスを求める一部の本格的なプログラマーに最適であることがわかります。実際にはそうではありませんが、複数のプラットフォームでうまく動作します。 ネイティブ フィーリング。

Python アプリ プログラマーの中には、この情報が役立つと考えて、Kivy に注目し始める人がいることを願っています。コミュニティからの大きな関心があればこそ (サポートが増え、ライブラリやモジュールが移植されることで) 改善される可能性があります。

追伸私は Kivy とは何の関係もありません。私は、モバイル/クロスプラットフォーム開発に Python コーディングの楽しさをもたらすというアイデアが大好きなプログラマーにすぎません。

現時点ではそうではありません。すぐに Jython が動作するようになれば幸いです。今から開発を始めるつもりなら、当面は Java にこだわったほうが良いでしょう。

SL4A (他の回答ですでに単独で言及されています) を使用すると、次のことができます 走る 本格的な web2py インスタンス(その他) Python Web フレームワーク も候補になる可能性があります)。SL4A では、ネイティブ UI コンポーネント (ボタン、スクロール バーなど) を実行することはできませんが、サポートされています。 Webビュー. 。WebView は基本的に、固定アドレスを指定したシンプルな Web ブラウザにすぎません。ネイティブの Gmail アプリは通常のウィジェット ルートではなく WebView を使用していると思います。

このルートにはいくつかの興味深い特徴があります。

  • ほとんどの Python Web フレームワークの場合、Android デバイスや Android エミュレーターを使用しなくても、実際に開発およびテストできます。
  • 電話機用に最終的に作成する Python コードは何であれ、ほとんど変更を加えずにパブリック Web サーバーに配置することもできます。
  • 世の中にあるクレイジーな Web コンテンツをすべて活用できます。クエリ、HTML5、CSS3など。

QPython アプリケーションを使用します。エディターとコンソールがあり、Python プログラムを実行できます。アプリケーションは無料で、リンクは次のとおりです。 http://qpython.com/.

使用できます テルマックス 応用:

apt install python は Python 3 をインストールすることに注意してください。Python 2 の場合は、apt install python2 を呼び出す必要があります。

いくつかのデモはここにあります: https://www.youtube.com/watch?v=fqqsl72mASE

github ページもあります: https://github.com/termux

から アンドロイド用のPython サイト:

Python for Android は、必要なモジュールを含む独自の Python ディストリビューションを作成し、Python、ライブラリ、アプリケーションを含む APK を作成するプロジェクトです。

さらに別の試み: https://code.google.com/p/android-python27/

これは、Python インタプリタをアプリ APK に直接埋め込みます。

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

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

mosync を実行している可能性のある Python-on-a-chip もあります。 グーグルグループ

チャコピー

チャコピー Android Studio の Gradle ベースのビルド システム用のプラグインです。焦点を当てているのは、 緊密な統合 標準の Android 開発ツールを使用します。

  • 呼び出すための完全な API を提供します Python から Java または Java からの Python, により、開発者はアプリの各コンポーネントに最適な言語を使用できるようになります。

  • 自動的にダウンロードできる PyPIパッケージ NumPy などの選択されたネイティブ パッケージを含むアプリにそれらをビルドします。

  • これにより、ネイティブ ユーザー インターフェイス ツールキット (純粋な Python アクティビティの例).

これは商用製品ですが、オープンソースでの使用は無料であり、今後もそのままです。

(私はこの製品の作成者です。)

Playstore には、Python スクリプトの編集と実行の両方に使用できる QPython3 というアプリがあります。

プレイストアのリンク

コマンドを使用してPythonをインストールできるTermuxという別のアプリ

pkg install python

プレイストアリンク

アプリを開発したい場合は、 Python Android スクリプト レイヤー (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

使用できます QPython:

Python コンソール、エディター、パッケージ管理/インストーラーが備わっています。

http://qpython.com/

これは、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

これがここに投稿されていませんでしたが、Necessitas のおかげで Qt が Android 上で動作するようになったので、Pyside と Qt を使用してそれを行うことができます。

現時点ではかなり面倒なようですが、最終的には実行可能なルートになる可能性があります...

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

3.4.2 または 3.5.1 をお探しの場合のもう 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 が得られるという点で優れています。

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

もう1つの選択肢があるようです pyqtデプロイ ドキュメントを引用すると次のとおりです。

QTを搭載した他のツールと組み合わせて、Pyton v2.7またはPython v3.3以降で記述されたPyqt4およびPyqt5アプリケーションの展開を可能にするツール。デスクトッププラットフォーム(Linux、Windows、OS X)およびモバイルプラットフォーム(iOSおよびAndroid)への展開をサポートします。

によると pyqtdeploy と Qt5 を介して PyQt5 アプリケーションを Android にデプロイする 活発に開発されていますが、動作する Android アプリの例や、必要なすべてのライブラリを Android にクロスコンパイルする方法に関するチュートリアルを見つけるのは困難です。興味深いプロジェクトなので覚えておいてください!

チェックアウト エナメル質ネイティブ これは反応ネイティブの概念を取り入れて Python に適用します。

これにより、ユーザーはネイティブ Android ウィジェットを使用してアプリを構築できるようになり、Python から Android および Java ライブラリを使用するための API が提供されます。

また、android-studio と統合されており、コードのリロードやリモート デバッグなどの React の優れた開発機能のいくつかを共有します。

を見てみましょう ビーウェア. 。この質問に回答した時点では、まだ開発の初期段階にあります。その目的は、Android を含むすべてのサポートされているオペレーティング システムに対して Python を使用してネイティブ アプリを作成できるようにすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top