Frage

Wir arbeiten an einem S60 Version und diese Plattform hat eine schöne Python API ..

Allerdings gibt es nichts offizielles über Python auf Android, aber da Jython existiert, gibt es eine Möglichkeit, die Schlange und der Roboter arbeiten zu lassen zusammen ??

War es hilfreich?

Lösung

Eine Möglichkeit ist die Verwendung Kivy :

  

Open-Source-Python-Bibliothek für die schnelle Entwicklung von Anwendungen   dass nutzt innovativen Benutzeroberflächen, wie Multi-Touch-Anwendungen.

  

Kivy läuft unter Linux, Windows, OS X, Android und iOS. Sie können den gleichen [Python] Code auf allen unterstützten Plattformen ausgeführt werden.

Kivy Showcase App

Andere Tipps

Es gibt auch die neue Android Scripting Environment (ASE / SL4A) Projekt. Es sieht fantastisch, und es hat eine gewisse Integration mit nativen Android-Komponenten.

Hinweis: nicht mehr unter „aktiver Entwicklung“, aber einige Gabeln kann sein

.

Ja! : Android Scripting Environment

Ein Beispiel über Matt Cutts über SL4A - „hier ist ein Barcode Scanner in sechs Zeilen Python-Code geschrieben:

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)

Es gibt auch SL4A geschrieben in großen von Google-Mitarbeitern.

"Das Pygame Subset für Android ist ein Port von einer Untergruppe von Pygame Funktionalität auf die Android-Plattform . Das Ziel des Projektes ist der Schaffung von Android-spezifischen Spielen zu ermöglichen, und die Portierung von Spielen von PC-ähnlichen Plattformen Android. "

zu erleichtern

Die Beispiele schließen ein komplettes Spiel in einer APK verpackt, was ziemlich interessant ist.

Ich habe Anweisungen geschrieben und ein Patch für Cross Python 2.7.2 für Android kompilieren, können Sie es auf meinem Blog bekommen hier: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: Ich habe Open Source Ignifuga , meine 2D Game Engine, es Python / SDL basiert und es Quer compiliert für Android. Auch wenn Sie es nicht für Spiele verwenden, könnten Sie nützliche Ideen aus dem Code erhalten und den Bauherrn Dienstprogramm (benannt Schafer, nachdem Tim ... Wissen Sie, wer).

Scripting Layer for Android

SL4A tut, was Sie wollen. Sie können es leicht von ihrer Website direkt auf dem Gerät installieren, und nicht root benötigen.

Es unterstützt eine Reihe von Sprachen. Python ist der reifste. Standardmäßig verwendet es Python 2.6, aber es gibt ein 3.2 Port Sie können stattdessen verwenden. Ich habe diesen Port für alle möglichen Dinge auf einem Galaxy S2 verwendet und es funktionierte gut.

API

SL4A bietet einen Anschluss ihrer android Bibliothek für jede unterstützte Sprache. Die Bibliothek stellt eine Schnittstelle zu dem zugrunde liegenden Android API über ein einziges Android Objekt.

from android import Android

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

Jede Sprache hat so ziemlich die gleiche API. Sie können sogar den JavaScript-API innerhalb WebViews verwenden.

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

User Interfaces

Für Benutzeroberflächen, haben Sie drei Möglichkeiten:

  • Sie können ganz einfach die generischen, nativen Dialoge und Menüs durch den Einsatz API. Das ist gut für die Bestätigung Dialoge und andere grundlegende Benutzereingaben.
  • Sie können auch eine Webansicht von innen öffnen ein Python-Skript, dann verwenden HTML5 für die Benutzeroberfläche. Wenn Sie WebViews von Python verwenden, können Sie passieren Nachrichten hin und her, zwischen dem webview und dem Prozess, der Python gelaicht es. Die Benutzeroberfläche wird nicht nativ sein, aber es ist immer noch eine gute Option, haben.
  • Es ist einige Unterstützung für native Android Benutzeroberflächen, aber ich bin nicht sicher, wie gut es funktioniert; Ich habe nur noch nie benutzt es.

Sie können Optionen mischen, so dass Sie eine Webansicht für die Haupt-Schnittstelle haben kann, und verwenden noch nativen Dialoge.

QPython

Es gibt eine dritte Partei Projekt mit dem Namen QPython . Es baut auf SL4A und wirft in einem anderen nützlichen Dingen.

QPython gibt Ihnen ein schöneres UI Ihre Installation zu verwalten und verfügt über einen kleinen, Touchscreen-Code-Editor, ein Python-Shell und ein PIP-Shell für das Paketmanagement. Sie haben auch eine Python 3-Port. Beide Versionen sind im Play Store verfügbar, kostenlos. QPython bündelt auch Bibliotheken, die aus einem Bündel von Python auf Android-Projekten, einschließlich Kivy, so ist es nicht nur SL4A.

Beachten Sie, dass QPython noch ihre Gabel von SL4A entwickeln (wenn auch nicht viel, ehrlich zu sein). Das Haupt SL4A Projekt selbst ist ziemlich tot.

Nützliche Links

Als ein Python Liebhaber und Android-Programmierer, ich bin traurig, dies zu sagen nicht wirklich ein guter Weg zu gehen. Es gibt zwei Probleme.

Ein Problem ist, dass es viel mehr als nur eine Programmiersprache ist auf die Android-Entwicklungstools. Viele der Android Grafiken beinhalten XML-Dateien die Anzeige, ähnlich wie HTML zu konfigurieren. Die integrierten Java-Objekte sind wirklich mit diesem XML-Layout integriert, und es ist viel einfacher, als Sie Ihren eigenen Code zu schreiben von Logik Bitmap zu gehen.

Das andere Problem ist, dass das G1 (und wahrscheinlich auch andere Android-Geräte für die nahe Zukunft) sind wirklich nicht so schnell. 200 MHz-Prozessoren und RAM ist sehr begrenzt. Auch in Java haben Sie eine anständige Menge an neu zu schreiben zu vermeiden-mehr-Objekt-Erstellung, wenn Sie möchten, dass Ihre App vollkommen glatt machen. Python ist immer noch auf mobilen Geräten für eine Weile zu langsam sein.

Kivy


Ich möchte dies als eine Erweiterung schreiben, was @JohnMudd hat bereits beantwortet ( aber bitte mit mir tragen als Englisch nicht meine erste Sprache ist )

Es ist Jahre her, seitdem und Kivy hat zu v1.9-dev entwickelt. Der größte Pluspunkt von Kivy, meiner Meinung nach, ist die plattformübergreifende Kompatibilität. Sie können Ihre lokale Umgebung (Windows / * nichts etc.) kodieren und Test unter, können Sie auch erstellen, debuggen und verpacken Sie Ihre App auf Ihrem Android / iOS / Mac / Windows-Geräte ausgeführt werden.

Mit Kivy eigenen KV Sprache, können Sie Code und bauen die GUI-Schnittstelle leicht (es ist wie Java XML, sondern als Textview etc. KV hat seine eigene ui.widgets für die ähnliche Übersetzung), die meiner Meinung nach ist ganz einfach zu übernehmen.

Zur Zeit Buildozer und python-for-android sind die am meisten empfohlene Werkzeuge / Paket Ihre Anwendungen zu bauen. Ich habe sie versucht, beide und fest sagen, dass sie ein Kinderspiel bauen Android apps mit Python machen. Benutzer, die sich in ihrer Konsole / Terminal / Eingabeaufforderung wohl fühlen sollten keine Probleme mit ihnen haben, und ihre Führer sind gut dokumentiert, auch.

Darüber hinaus ist iOS ein weiterer großer Pluspunkt von Kivy, vorausgesetzt, dass Sie die gleiche Codebasis mit wenig Änderungen können erforderlich, um Testlauf auf Ihrem iOS-Gerät über Kivy-ios Homebrew Tools, obwohl Xcode für den Build vor der Ausführung auf ihren Geräten erforderlich ist (AFAIK die iOS Simulator in Xcode funktioniert derzeit nicht für die x86-Architektur aufbauen). Es gibt auch einige Abhängigkeitsprobleme, die manuell erstellt werden müssen und fummelte herum mit in Xcode einen erfolgreichen Build haben, aber sie würden nicht allzu schwierig sein, zu lösen und Menschen in ist Kivy Google-Gruppe auch sehr hilfreich sein.

Mit allen gesagt wird, können Benutzer mit guten Python Wissen sollte kein Problem haben, die Grundlagen in Wochen Abholung (wenn nicht sogar Tage) einige einfache Anwendungen zu bauen.

Ebenfalls erwähnenswert ist, dass Sie bündeln (Rezepte bauen) können Sie Ihre Python-Module mit dem Build, so dass Benutzer wirklich nutzen viele vorhandene Bibliotheken machen können Python uns bringen, wie Requests & PIL usw. durch Kivy der Erweiterung Unterstützung .

  

Manchmal erfordert Ihre Anwendung Funktionalität, die über das ist   Umfang dessen, was Kivy liefern kann. In diesen Fällen ist es notwendig,   greift auf externe Software-Bibliotheken. Angesichts der Vielfalt der   Python Ökosystem gibt es bereits eine Menge Software   Bibliotheken, die Sie einfach importieren und sofort nutzen.

Die letzte, aber nicht zuletzt, wenn Sie Kivy für ernstere / kommerzielle Projekte verwenden wollen, können Sie vorhandenen Module nicht zufrieden. Es gibt einige praktikable Lösungen aber mit dem "work in progress" von pyjnius für Android, und pyobjus . Benutzer können nun Java / Objective-C-Klassen durch diese Module zugreifen einige der nativen APIs steuern.

Meine Erfahrung in Kivy ist, dass es seine beste Passform mit erfahrenen Python-Programmierer und einige ernsthafte Programmierer finden, die schnelle Entwicklung oder einfache Code-Basis Wartung möchten. Es läuft gut auf mehreren Plattformen, wenn auch nicht wirklich mit dem nativer Gefühl.

Ich habe einige Python App-Programmierer diese Informationen nützlich finden hoffen, und starten Sie einen Blick auf Kivy nehmen. Es kann nur besser werden (mit mehr Unterstützung und als Bibliotheken / modules portiert bekommen), wenn es ein großes Interesse aus der Community.

P. S. Ich habe keine Beziehung zu Kivy auch immer, ich bin nur ein Programmierer, der wirklich die Idee mag bringen Python Codierung Spaß an mobiler / Cross-Plattform-Entwicklung.

Im Moment nicht, und Sie würden sich glücklich schätzen, Jython zu bekommen bald zu arbeiten. Wenn Sie planen, Ihre Entwicklung beginnen jetzt würden Sie besser dran mit nur jetzt auf Java kleben.

Mit SL4A (die bereits von selbst in anderen Antworten erwähnt) können Sie laufen eine ausgewachsene web2py Instanz (andere python Web-Frameworks als auch wahrscheinliche Kandidaten). SL4A ermöglicht es Ihnen nicht nativen UI-Komponenten (Schaltflächen, Bildlaufleisten und dergleichen) zu tun, aber es unterstützt WebViews . Eine WebView ist im Grunde nichts anderes als ein gestreifter untenen Web-Browser an einer festen Adresse gerichtet. Ich glaube, dass die native Gmail App ein WebView verwendet anstelle der regulären Widget Weg zu gehen.

Diese Route würde einige interessante Features:

  • Im Fall der meist Python-Web-Frameworks, könnten Sie tatsächlich entwickeln und zu testen, ohne dass ein Android-Gerät oder Android-Emulator.
  • Was Python Code, den Sie für das Telefon das Schreiben am Ende auch mit sehr wenig (wenn überhaupt) Änderung setzen auf einen Webserver werden könnten.
  • Sie können alle Vorteile der verrückten Web Zeug nehmen da draußen. Abfrage, HTML5, CSS3, etc

Ich verwende die QPython Anwendung. Es verfügt über einen Editor, eine Konsole, und Sie können Ihre Python-Programme laufen mit ihm. Die Anwendung ist kostenlos, und der Link http://qpython.com/ .

Sie können mit Termux Anwendung:

Beachten Sie, dass apt Python installieren installieren Python 3. für 2 Python shoud Sie apt installieren python2 nennen.

Einige Demos hier: https://www.youtube.com/watch?v=fqqsl72mASE

Und auch die Github Seite: https://github.com/termux

Von den Python für android Website:

  

Python für Android ist ein Projekt, Ihre eigene Python-Distribution einschließlich der Module, die Sie erstellen möchten, und erstellen Sie eine apk einschließlich Python, Libs, und Ihre Anwendung.

Ein weiterer Versuch: https://code.google.com/p/android-python27/

Dieses einbetten direkt Python interpretter in Ihrer App apk.

Sie können Ihren Python-Code unter Verwendung von SL4a laufen. SL4a unterstützt Python, Perl , JRuby , Lua , Beanshell, JavaScript, Tcl und Shell-Skript.

Sie können SL4A Python Beispiele .

Es gibt auch Python-on-a-Chip möglicherweise MoSync ausgeführt wird: google-Gruppe

Chaquopy

Chaquopy ist ein Plugin für Android Studio Gradle-basierten Build-System. Es konzentriert sich auf mit den Standard-Android-Entwicklungstools rel="noreferrer">.

Dies ist ein kommerzielles Produkt, aber es ist kostenlos für Open-Source-Nutzung und bleibt immer so.

(Ich bin der Schöpfer dieses Produkts.)

Es gibt eine App QPython3 in Plays genannt, die sowohl für die Bearbeitung und laufenden Python-Skript verwendet werden können.

Plays Link

Eine andere App namens Termux, in dem Sie Python mit dem Befehl installieren

pkg install python

Plays Link-

Wenn Sie Anwendungen entwickeln wollen, gibt es Python Android Scripting Layer (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.

Sie können verwenden QPython :

Es hat eine Python-Konsole, Editor, sowie Paketverwaltung / Installateure

http://qpython.com/

Es ist ein Open-Source-Projekt mit beiden Pythons 2 und Python 3-Implementierungen. Sie können den Quellcode herunterladen und die Android APK-Dateien direkt von Github.

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

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

Haben Sie nicht sehen, das hier geschrieben, aber man kann es mit pyside und Qt jetzt tun, dass Qt auf Android dank Necessitas funktioniert.

Es scheint wie eine ganz Flickschusterei im Moment, aber könnte einen gangbaren Weg sein, schließlich ...

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

Eine weitere Option, wenn Sie für 3.4.2 oder 3.5.1 suchen, ist dieses Archiv auf GitHub.

Python3-Android 3.4.2 oder Python3-Android 3.5.1

Es unterstützt derzeit Python 3.4.2 oder 3.5.1 und die 10d Version des NDK. Es kann auch unterstützen 3,3 und 9c, 11c und 12

Es ist schön, dass Sie es einfach heruntergeladen haben, führen und Sie erhalten die .so oder die .a

Ich benutze dies derzeit roh Python auf Android-Geräten zu laufen. Mit ein paar Änderungen an den Build-Dateien können Sie auch x86 machen und armeabi 64 Bit

Eine weitere Option scheint pyqtdeploy die die Dokumentation unter Berufung ist:

  

ein Werkzeug, das in Verbindung mit anderen Werkzeugen mit Qt zur Verfügung gestellt, ermöglicht   der Einsatz von PyQt4 und PyQt5 Anwendungen in Python geschrieben   v2.7 oder Python v3.3 oder höher. Es unterstützt die Bereitstellung auf dem Desktop   Plattformen (Linux, Windows und OS X) und auf mobilen Plattformen (iOS und   Android).

Nach Bereitstellen von PyQt5 Anwendung auf Android über pyqtdeploy und QT5 es wird aktiv entwickelt, obwohl es schwierig ist, Beispiele zu finden, arbeiten Android Apps oder Anleitung, wie man alle benötigten Bibliotheken auf Android-Kreuz kompilieren. Es ist ein interessantes Projekt, obwohl im Auge zu behalten!

Schauen Sie sich enaml-native , die die reagieren-native Konzept und wendet es auf Python .

Damit können Benutzer Anwendungen mit nativer Android-Widgets erstellen und bietet APIs Android und Java-Bibliotheken von Python zu verwenden.

Es integriert auch mit Android-Studio und Aktien ein paar schönen dev Features wie Code des reagiert Nachladen und Remote-Debugging.

Hier finden Sie aktuelle BeeWare . Im Moment der Beantwortung dieser Frage ist es immer noch in der frühen Entwicklung. Es hat das Ziel, native Anwendungen mit Python erstellen zu können, für alle unterstützten Betriebssysteme, einschließlich Android.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top