Gibt es eine Möglichkeit, Python unter Android auszuführen?

2093

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

Es gibt jedoch nichts offizielles über Python unter Android, aber gibt es eine Möglichkeit, die Schlange und den Roboter zusammenarbeiten zu lassen , da Jython existiert?

e-satis
quelle

Antworten:

1061

Eine Möglichkeit ist die Verwendung von Kivy :

Open-Source-Python-Bibliothek für die schnelle Entwicklung von Anwendungen, die innovative Benutzeroberflächen verwenden, wie z. B. Multi-Touch-Apps.

Kivy läuft unter Linux, Windows, OS X, Android und iOS. Sie können auf allen unterstützten Plattformen denselben [Python] -Code ausführen.

Kivy Showcase App

JohnMudd
quelle
63
Wenn Sie Kivy verwenden, ist hier ein Tool, mit dem Sie Ihr Projekt in eine APK
packen können
17
Ich habe letzte Woche mit Kivy herumgespielt und versucht, ein Spiel zu schreiben. Ihre Hauptentwickler beantworteten Fragen im IRC sehr schnell. Wenn Sie jedoch eine GUI vor Kivy programmiert haben, werden Sie WTF ziemlich oft sagen. Einige Beispiele für undokumentierte Dinge, die für mich seltsam waren: Alle Widgets erhalten jedes on_touch_down-Ereignis, auch wenn das Ereignis außerhalb ihrer Region aufgetreten ist. Kein Widget verfügt über eine draw () -Methode. Fast alles geschieht über ein benutzerdefiniertes Beobachtermuster in benutzerdefinierten Eigenschaften, die sie erstellt haben ( Beachten Sie, dass diese den Namen mit Pythons Eigentum teilen, aber nicht dasselbe sind.)
Trey Stout
7
@Trey: Was ist mit nicht-GUI-bezogenen Dingen? Gibt es Einschränkungen hinsichtlich der Verwendung der Python-Module? Was ist mit dem Zugriff auf Android-spezifische Funktionen, z. B. die Möglichkeit, Nachrichten zu lesen, Benachrichtigungen hinzuzufügen, im Hintergrund zu arbeiten, ein Foto zu erstellen, die Kontaktliste zu lesen, den GPS-Standort zu bestimmen usw.?
Tadeck
7
Und jetzt gibt es auch iOS-Unterstützung!
Rubik
16
Jetzt, fast ein ganzes Jahr später, ist die Unterstützung besser? Wurden hier bemerkenswerte Verbesserungen vorgenommen?
TankorSmash
347

Es gibt auch das neue Projekt Android Scripting Environment (ASE / SL4A). Es sieht fantastisch aus und ist in native Android-Komponenten integriert.

Hinweis: Nicht mehr unter "aktive Entwicklung", aber einige Gabeln können sein.

Heat Miser
quelle
70
Stimmt, aber sie müssen ASE installiert haben, es ist keine Lösung, mit der Sie eine Android-App in Python schreiben können, ohne dass bereits etwas installiert ist (normaler Benutzer wird alles sein "wtf ist das ASE-Ding?)
Stuart Axon
20
Darüber hinaus ist ASE eine eingeschränkte Umgebung. Sie können keine vollständigen Android-Apps schreiben, selbst wenn ASE vorinstalliert ist. Siehe stackoverflow.com/questions/2076381
Sridhar Ratnakumar
10
Ich denke, es wurde in SL4A umbenannt.
Vanuan
9
Mit SL4A können Sie jetzt Apps schreiben, verpacken und sogar im Play Store verkaufen, wenn Sie möchten. Es ist gut angekommen, seit die obigen Kommentare gepostet wurden. Wenn Sie Python auf Android möchten, ist PY4A, das auf SL4A ausgeführt wird, wahrscheinlich die beste Wahl.
Carl Smith
2
Ich bestätige, SL4A erlaubt jetzt, gebrauchsfertige Anwendungspakete zu schreiben. Ich habe versucht, mit Perl zu arbeiten
Ubugnu
216

Ja! : Android-Skriptumgebung

Ein Beispiel über Matt Cutts über SL4A - "Hier ist ein Barcode-Scanner, der in sechs Zeilen Python-Code geschrieben ist:

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)
unmontiert
quelle
46
s / JA / meh. vielleicht / ... es ist extrem begrenzt. irgendetwas grafisches oder Multi-Touch? ein großes NEIN.
GCB
2
@gcb Sie können nicht das normale Android-Widget-Set verwenden, aber Sie können "Webviews" verwenden (was beispielsweise die native Google Mail-Anwendung verwendet).
GDW2
28
Golf gespielt: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
12
@ gdw2, sicherlich verwendet die native Google Mail-App nur WebViews, um E-Mails zu analysieren, nicht für die eigentliche Benutzeroberfläche. Das macht den Vergleich etwas absurd.
Veselin Romić
88

Pygame Subset für Android

Pygame ist eine 2D-Spiel-Engine für Python (auf dem Desktop), die bei neuen Programmierern beliebt ist. Die Pygame-Untergruppe für Android beschreibt sich selbst als ...

... eine Portierung einer Teilmenge der Pygame-Funktionalität auf die Android-Plattform. Ziel des Projekts ist es, die Erstellung von Android-spezifischen Spielen zu ermöglichen und die Portierung von Spielen von PC-ähnlichen Plattformen auf Android zu vereinfachen.

Die Beispiele beinhalten ein komplettes Spiel, das als APK verpackt ist, was ziemlich interessant ist.

muriloq
quelle
4
Auf meinem Droid X waren einige Aspekte defekt (Schaltflächen oder Touchscreen können sich nicht erinnern), sodass ich mit dieser Route nicht weit gekommen bin.
GDW2
78

Cross-Compilation & Ignifuga

Mein Blog enthält Anweisungen und einen Patch zum Cross-Kompilieren von Python 2.7.2 für Android.

Ich habe auch Ignifuga mit offener Quelle , meine 2D-Game-Engine. Es basiert auf Python / SDL und ist für Android crosskompiliert. Selbst wenn Sie es nicht für Spiele verwenden, erhalten Sie möglicherweise nützliche Ideen aus dem Code- oder Builder-Dienstprogramm ( Schafer genannt , nach Tim ... Sie wissen, wer).

gabomdq
quelle
4
Beeindruckend. +1 dafür. Wird nicht akzeptiert, da Sie damit unmöglich etwas für die Öffentlichkeit schreiben können.
E-Satis
1
Wenn Sie damit meinen, dass Sie keine grafischen Apps damit erstellen können, können Sie auf jeden Fall mehr Arbeit leisten. Ich verwende diesen Port tatsächlich in Kombination mit SDL 1.3. Es ist nicht trivial, vom Python-Interpreter zu einer interaktiven App zu wechseln, aber es ist möglich.
Gabomdq
77

Scripting Layer für Android

SL4A macht was Sie wollen. Sie können es einfach direkt von der Site auf Ihrem Gerät installieren und benötigen kein Root.

Es unterstützt eine Reihe von Sprachen. Python ist am ausgereiftesten. Standardmäßig wird Python 2.6 verwendet, es gibt jedoch einen 3.2-Port, den Sie stattdessen verwenden können. Ich habe diesen Port für alle möglichen Dinge auf einem Galaxy S2 verwendet und es hat gut funktioniert.

API

SL4A bietet einen Port ihrer androidBibliothek für jede unterstützte Sprache. Die Bibliothek bietet eine Schnittstelle zur zugrunde liegenden Android-API über ein einzelnes AndroidObjekt.

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 die JavaScript-API sogar in Webansichten verwenden.

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

Benutzeroberflächen

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

  • Sie können die allgemeinen, nativen Dialoge und Menüs einfach über die API verwenden. Dies ist gut für Bestätigungsdialoge und andere grundlegende Benutzereingaben.
  • Sie können eine Webansicht auch in einem Python-Skript öffnen und dann HTML5 für die Benutzeroberfläche verwenden. Wenn Sie Webviews aus Python verwenden, können Sie Nachrichten zwischen der Webview und dem Python-Prozess, der sie erzeugt hat, hin und her übertragen. Die Benutzeroberfläche ist nicht nativ, aber dennoch eine gute Option.
  • Es gibt einige Unterstützung für native Android-Benutzeroberflächen, aber ich bin nicht sicher, wie gut es funktioniert. Ich habe es einfach noch nie benutzt.

Sie können Optionen mischen, um eine Webansicht für die Hauptoberfläche zu erhalten und weiterhin native Dialoge zu verwenden.

QPython

Es gibt ein Drittanbieterprojekt namens QPython . Es baut auf SL4A auf und wirft einige andere nützliche Dinge ein.

QPython bietet Ihnen eine schönere Benutzeroberfläche für die Verwaltung Ihrer Installation und enthält einen kleinen Touchscreen-Code-Editor, eine Python-Shell und eine PIP-Shell für die Paketverwaltung. Sie haben auch einen Python 3-Port. Beide Versionen sind kostenlos im Play Store erhältlich. QPython bündelt auch Bibliotheken aus einer Reihe von Python in Android-Projekten, einschließlich Kivy, sodass es sich nicht nur um SL4A handelt.

Beachten Sie, dass QPython immer noch seine SL4A-Gabel entwickelt (allerdings nicht viel, um ehrlich zu sein). Das Hauptprojekt SL4A selbst ist so ziemlich tot.

Nützliche Links

Carl Smith
quelle
1
Können Sie eines davon verwenden, um Python-Skripte vom Terminal oder Tasker aus auszuführen? Ich kann keinen Weg finden :(
Pitto
1
Sie können ein SL4A-Skript über Tasker starten. Auf dieser Seite finden Sie einige Beispiele , in denen Python-Schnipsel von Tasker gestartet werden. Es ist jedoch wirklich eine ganz andere Frage.
Carl Smith
77

Als Python- Liebhaber und Android-Programmierer bin ich traurig zu sagen, dass dies kein guter Weg ist. Es gibt zwei Probleme:

Ein Problem ist, dass die Android-Entwicklungstools viel mehr als nur eine Programmiersprache enthalten. Viele der Android-Grafiken enthalten XML-Dateien, um die Anzeige zu konfigurieren, ähnlich wie bei HTML. Die integrierten Java-Objekte sind in dieses XML-Layout integriert, und es ist viel einfacher als das Schreiben Ihres Codes, um von der Logik zur Bitmap zu gelangen.

Das andere Problem ist, dass das G1 (und wahrscheinlich auch andere Android-Geräte für die nahe Zukunft) nicht so schnell sind. 200 MHz Prozessoren und RAM sind sehr begrenzt. Selbst in Java müssen Sie eine angemessene Menge an Umschreibungen vornehmen, um mehr Objekterstellung zu vermeiden, wenn Sie Ihre App perfekt reibungslos gestalten möchten. Python wird auf mobilen Geräten noch eine Weile zu langsam sein.

Lack
quelle
48
Auf einem Android-Telefon gibt es kein einziges Java-Wort. Es wird während des Verpackungsprozesses zu Bytecode kompiliert. Geschwindigkeit ist nicht das Problem: Google könnte Tools bereitstellen, die den richtigen Bytecode aus einem Python-Code erzeugen (wie bei Jython). Übrigens ist Dalvik nicht die Java-VM, daher geht es hier nicht um Java VS Python.
E-Satis
6
JAVA-Bytecode muss noch von einer JVM verarbeitet werden, und die Java-Sprache erfordert ohnehin einen Garbage Collector. Die tatsächliche Geschwindigkeit konnte nur von C ++ kommen.
LtWorf
19
@Touzen 2 weitere Jahre später führen wir jetzt Intel Atom-Prozessoren oder Octa-Core-Prozessoren aus. ;)
Rohan Kandwal
2
Aufgrund der unterschiedlichen Leistung, die sie verbrauchen können, sind Telefone immer um eine Größenordnung langsamer als Desktops. Geben Sie Python für das mobile Gerät jedoch nicht auf, da normalerweise nur ein Bruchteil des Codes für die prozessorintensive Arbeit verantwortlich ist und dieser Bruchteil durch Umschreiben in eine andere Sprache optimiert werden kann.
Evgeni Sergeev
2
Übrigens, Google pusht Kotlin heutzutage - was für die meisten Benutzer eine ziemlich unbekannte Sprache ist - ist klar, dass es möglich ist, andere Sprachen als Java zu unterstützen (ich bin ein Java-Entwickler und ein Python-Fan). Ich denke, die Antwort ist eher eine politische als eine praktische.
Alex
49

Kivy

Ich wollte hinzufügen, was @JohnMudd über Kivy geschrieben hat. Seit der von ihm beschriebenen Situation sind Jahre vergangen, und Kivy hat sich erheblich weiterentwickelt.

Das größte Verkaufsargument von Kivy ist meiner Meinung nach die plattformübergreifende Kompatibilität. Sie können alles in jeder Desktop-Umgebung (Windows / * nix usw.) codieren und testen und dann Ihre App für eine Reihe verschiedener Plattformen verpacken, einschließlich Android, iOS, MacOS und Windows (obwohl Apps häufig nicht das native Erscheinungsbild haben).

Mit Kivys eigener KV- Sprache können Sie die GUI-Oberfläche einfach codieren und erstellen (es ist wie Java XML, aber anstelle von TextView usw. hat KV eine eigene ui.widgetsfür eine ähnliche Übersetzung), was meiner Meinung nach recht einfach zu übernehmen ist.

Derzeit sind Buildozer und Python-for-Android die am meisten empfohlenen Tools zum Erstellen und Packen Ihrer Apps. Ich habe beide ausprobiert und kann mit Bestimmtheit sagen, dass das Erstellen von Android-Apps mit Python ein Kinderspiel ist. Ihre Führer sind auch gut dokumentiert.

iOS ist ein weiteres großes Verkaufsargument von Kivy. Sie können dieselbe Codebasis mit wenigen Änderungen verwenden, die über die kivy-ios Homebrew-Tools erforderlich sind, obwohl Xcode für den Build erforderlich ist, bevor sie auf ihren Geräten ausgeführt werden (AFAIK, der iOS-Simulator in Xcode, funktioniert derzeit nicht für den Build mit x86-Architektur). . Es gibt auch einige Abhängigkeitsprobleme, die manuell kompiliert und in Xcode herumgespielt werden müssen, um einen erfolgreichen Build zu erzielen. Sie sind jedoch nicht allzu schwer zu lösen, und die Mitarbeiter der Kivy Google Group sind ebenfalls sehr hilfreich.

Trotz alledem sollten Benutzer mit guten Python-Kenntnissen kein Problem damit haben, die Grundlagen schnell zu erlernen.

Wenn Sie Kivy für ernstere Projekte verwenden, sind vorhandene Module möglicherweise unbefriedigend. Es gibt jedoch einige praktikable Lösungen. Mit dem (in Arbeit befindlichen) Pyjnius für Android und Pyobjus können Benutzer jetzt auf Java / Objective-C-Klassen zugreifen, um einige der nativen APIs zu steuern.

Anzel
quelle
Ich habe gerade Kivy von seiner Website heruntergeladen. Zeigt Unterstützung für Python 3.4 32 und 64-Bit sowie eine Demo der Touch-Eingabe.
CodeReview
1
@codeReview, ich habe Kivy nur mit Python2 verwendet und habe keine Erfahrung mit Python3. Läuft alles reibungslos?
Anzel
Ich werde Sie hoffentlich bald wissen lassen. Ich habe jedoch keine Erfahrung mit Python außerhalb der CPY-Dateien der CPython 3.4-Befehlsshell, um schnell Berechnungs- oder algorithmische Probleme zu lösen. Dies wird meine erste App mit einer GUI sein. Ich muss mehr Dokumentation lesen, die Kivy-Sprache verstehen und die Installationsschritte sorgfältig befolgen, damit ich weiß, wie ich Kivi auf meiner Python-IDE meiner Wahl installiere und die APK verpacke, um sie auf Android zu übertragen. Das ist ein mehrstufiger Prozess, daher kann es nicht unglaublich bald sein, wenn ich sagen kann.
CodeReview
1
@codeReview, viel Glück für deine Reise. Wenn dies Ihre erste App ist, empfehle ich dringend, .kv als Layoutdatei zu verwenden. Es ist wie eine Yaml- oder einfach Baumdatei, um die Layout-Widgets zu definieren. Wenn Ihre App aus mehreren Bildschirmen / Layouts besteht, ScreenManagersparen Sie durch diese Verwendung jede Menge Zeit. Ein Ratschlag ist auch, die Mailingliste zu lesen, eine Gruppe von Fachleuten, die bereit sind, Ihnen zu helfen.
Anzel
1
@codeReview Anstatt von der Demo-App von Kivy zu lernen, erhalten Sie möglicherweise mehr Einblicke in die Suche nach vorhandenen Kivy-Apps und können sehen, wie Benutzer die "Widgets" und Rückrufe in einem realen Szenario verwalten. Kivy ist überhaupt nicht schwer zu lernen, ich werde in Bezug auf die Lernkurve viel einfacher sagen als in Java + Android oder Objective-C + iOS
Anzel
40

Termux

Sie können die Termux- App verwenden, die eine POSIX-Umgebung für Android bereitstellt, um Python zu installieren.

Beachten Sie, dass apt install pythonPython3 unter Termux installiert wird. Für Python2 müssen Sie verwenden apt install python2.

Adrian Stanculescu
quelle
5
+1 für Termux. Absolut wundervolle Arbeitsumgebung. Tolle Paketauswahl in den Repos, praktische Tastenkombinationen. Es ist Debian am nächsten an einem Telefon, das ich jemals gefunden habe.
James
39

Im Moment nicht und Sie hätten das Glück, Jython bald zum Arbeiten zu bringen. Wenn Sie jetzt mit Ihrer Entwicklung beginnen möchten, sollten Sie sich vorerst nur an Java halten.

Ilya Kochetov
quelle
39

Mit SL4A (das bereits in anderen Antworten erwähnt wurde) können Sie eine vollständige web2py- Instanz ausführen (andere Python-Webframeworks sind wahrscheinlich ebenfalls Kandidaten). Mit SL4A können Sie keine nativen UI-Komponenten (Schaltflächen, Bildlaufleisten usw. ) erstellen , aber WebViews werden unterstützt . Ein WebView ist im Grunde nichts anderes als ein abgespeckter Webbrowser, der auf eine feste Adresse zeigt. Ich glaube, die native Google Mail-App verwendet ein WebView, anstatt den regulären Widget-Weg zu gehen.

Diese Route hätte einige interessante Eigenschaften:

  • Bei den meisten Python-Webframeworks können Sie tatsächlich entwickeln und testen, ohne ein Android-Gerät oder einen Android-Emulator zu verwenden.
  • Unabhängig davon, welchen Python-Code Sie am Ende für das Telefon schreiben, kann er auch mit sehr geringen (wenn überhaupt) Änderungen auf einen öffentlichen Webserver gestellt werden.
  • Sie könnten all das verrückte Web-Zeug da draußen nutzen: Abfrage, HTML5, CSS3 usw.
gdw2
quelle
2
Cherrypy funktioniert gut, mit Unterstützung für ws4py-Websockets. Flasche ist auch gut auf SL4A.
Carl Smith
33

QPython

Ich benutze die QPython App . Es ist kostenlos und enthält einen Code-Editor, einen interaktiven Interpreter und einen Paketmanager, mit denen Sie Python-Programme direkt auf Ihrem Gerät erstellen und ausführen können.

kyle k
quelle
2
Jetzt hat qpython Django-Unterstützung hinzugefügt! Das ist alles was ich brauche! Tolle!
Swdev
27

Von der Python für Android- Site:

Python für Android ist ein Projekt zum Erstellen einer eigenen Python-Distribution mit den gewünschten Modulen und zum Erstellen einer Apk mit Python, Bibliotheken und Ihrer Anwendung.

gdw2
quelle
1
@ e-satis: Danke für deinen Kommentar. Ich sehe nicht, welche Antwort ich dupliziere. Ich kann nur vermuten, dass Sie denken, dass PFA dasselbe ist wie Kivy. Obwohl es im Rahmen des Kivy-Projekts gehostet wird, müssen Sie Kivy nicht einmal verwenden, um PFA zu verwenden.
GDW2
Überprüfen Sie die gelöschte Antwort von @ tito am unteren Punkt von PFA. Außerdem besteht wenig Interesse daran, PFA ohne Kivy auszuführen, da es das einzige Toolkit ist, das Sie haben.
E-Satis
Dies liegt nicht daran, dass Kivy derzeit das einzige verfügbare Toolkit ist (einige arbeiten daran, andere zu integrieren), sondern daran, dass es sich um ein Duplikat handelt. Bitte betrachten Sie die anderen Optionen als solche und führen Sie nicht alle zu einem Beitrag zusammen: |
Tito
21

Chaquopy

Chaquopy ist ein Plugin für das Gradle-basierte Build-System von Android Studio. Es konzentriert sich auf die enge Integration mit den Standard-Android-Entwicklungstools.

  • Es bietet vollständige APIs zum Aufrufen von Java aus Python oder Python aus Java , sodass der Entwickler die für jede Komponente seiner App am besten geeignete Sprache verwenden kann.

  • Es kann PyPI-Pakete automatisch herunterladen und in eine App integrieren, einschließlich ausgewählter nativer Pakete wie NumPy.

  • Es ermöglicht den vollständigen Zugriff auf alle Android-APIs von Python aus, einschließlich des nativen Toolkits für die Benutzeroberfläche ( Beispiel für eine reine Python-Aktivität ).

Dies ist ein kommerzielles Produkt, aber es ist kostenlos für Open Source und wird es immer bleiben.

(Ich bin der Schöpfer dieses Produkts.)

mhsmith
quelle
20

Hier sind einige Tools aufgeführt, die auf der offiziellen Python-Website aufgeführt sind


Es gibt eine App namens QPython3 im Playstore, die sowohl zum Bearbeiten als auch zum Ausführen von Python-Skripten verwendet werden kann.

Playstore-Link


Eine andere App namens Termux, in der Sie Python mit dem Befehl installieren können

pkg install python

Playstore-Link


Wenn Sie Apps entwickeln möchten, 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 auch PySide für Android überprüfen , bei dem es sich tatsächlich um Python-Bindungen für das Qt 4 handelt.


Es gibt eine Plattform namens PyMob, auf der Apps nur in Python geschrieben werden können und der Compiler Tool-Flow (PyMob) sie in native Quellcodes für verschiedene Plattformen konvertiert.


Überprüfen Sie auch Python-für-Android

python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.


Probieren Sie Chaquopy A Python SDK für Android


Anddd ... BeeWare

BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.

pz64_
quelle
2
Mit Termux können Sie auch Python 2 installieren. $ apt install python2
M.Hefny
13

Sie können QPython verwenden :

Es verfügt über eine Python-Konsole, einen Editor sowie Paketverwaltung / Installationsprogramme

http://qpython.com/

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

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

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

ode2k
quelle
12

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

Python3-Android 3.4.2 oder Python3-Android 3.5.1

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

Es ist schön, dass Sie es einfach herunterladen, make ausführen und die .so oder die .a erhalten

Ich verwende dies derzeit, um rohes Python auf Android-Geräten auszuführen. Mit ein paar Änderungen an den Build-Dateien können Sie auch x86 und armeabi 64-Bit erstellen

GR Gesandter
quelle
11

Ich habe dies hier nicht gesehen, aber Sie können es jetzt mit Pyside und Qt tun, da Qt dank Necessitas auf Android funktioniert.

Es scheint im Moment ein ziemlicher Trottel zu sein, könnte aber irgendwann eine brauchbare Route sein ...

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

radix07
quelle
9

Eine weitere Option scheint pyqtdeploy zu sein, bei der die Dokumente zitiert werden:

Ein Tool, das in Verbindung mit anderen mit Qt bereitgestellten Tools die Bereitstellung von PyQt4- und PyQt5-Anwendungen ermöglicht, die mit Python v2.7 oder Python v3.3 oder höher geschrieben wurden. Es unterstützt die Bereitstellung auf Desktop-Plattformen (Linux, Windows und OS X) und auf mobilen Plattformen (iOS und Android).

Laut der Bereitstellung der PyQt5-Anwendung auf Android über pyqtdeploy und Qt5 wird sie aktiv entwickelt, obwohl es schwierig ist, Beispiele für funktionierende Android-Apps oder ein Tutorial zum Cross-Kompilieren aller erforderlichen Bibliotheken auf Android zu finden. Es ist jedoch ein interessantes Projekt!

Andrzej Pronobis
quelle
6

Schauen Sie sich BeeWare an . Zum Zeitpunkt der Beantwortung dieser Frage befindet sie sich noch in der frühen Entwicklung. Ziel ist es, mit Python native Apps für alle unterstützten Betriebssysteme, einschließlich Android, erstellen zu können.

DrawT
quelle
Was ist der Unterschied zu Kivy? Es ist stabil tragbare Python Gui basiert
Carsten Thielepape
5

Schauen Sie sich enaml-native an das das -Konzept auf Python anwendet.

Es ermöglicht Benutzern das Erstellen von Apps mit nativen Android-Widgets und bietet APIs zur Verwendung von Android- und Java-Bibliotheken aus Python.

Es lässt sich auch in Android-Studio integrieren und bietet einige der netten Entwicklungsfunktionen von React, wie das Neuladen von Code und das Remote-Debugging.

frmdstryr
quelle