Wie entwickle ich eine Android-App vollständig mit Python? [closed]

Lesezeit: 7 Minuten

Benutzer-Avatar
Ivo

Ich möchte eine (eher einfache) Android-App entwickeln, die über den Play Store vertrieben wird. Ich möchte dies vollständig in Python tun. Die Online-Recherche hat mich jedoch nicht ganz aufgeklärt: Die meisten Kommentare sind entweder veraltet (> 1 Jahr alt, und ich habe das Gefühl, dass es seitdem eine bessere Integration von Python gibt) oder sie sprechen über Ausführen von Python in Android (zB hier).

Daher suche ich Informationen zu den Fragen:

  • Ist es machbar, eine App vollständig in Python zu entwickeln – und welche Tools gibt es dafür? (Ist zB Kivy empfehlenswert?)
  • Wenn ja: Was sind die besten Softwareumgebungen, um dies zu implementieren? (Ich habe erfolglos versucht, Android Studio zu verwenden, konnte aber keine Möglichkeit finden, Python-Code dort auszuführen.)

Ich bin ziemlich neu in der App-Entwicklung und würde mich sehr über Hinweise freuen, dies in Python und nicht in Java usw. zu tun, was ich noch nicht weiß.

  • in der vergangenheit habe ich kivy und ihr buildozer-programm verwendet. Sie haben hier eine Dokumentation kivy.org/docs/guide/packaging-android.html

    – es

    24. Mai 2018 um 15:37 Uhr

  • Nativ müssen Sie entweder Java oder Kotlin verwenden, aber wie andere darauf hingewiesen haben, gibt es “App-Builder” von Drittanbietern oder Frameworks, die Sie mit Python wie PyMob oder Kivy verwenden können.

    – Dominik Schmidt

    29. Mai 2018 um 17:30 Uhr

  • Ich habe mit Kivy ein vollständig in Python entwickeltes Android-Spiel erstellt. Es heißt CoinTex und ist hier bei Google Play erhältlich: play.google.com/store/apps/details?id=coin.tex.cointexreactfast. Der Quellcode des Spiels ist hier bei GitHub verfügbar: github.com/ahmedfgad/CoinTex. Ich habe auch ein Buch über das Erstellen von Android-Apps mit Python geschrieben, das dieses Jahr veröffentlicht wird. Es trägt den Titel „Building Android Apps in Python Using Kivy with Android Studio: With Pyjnius, Plyer, and Buildozer Ahmed Fawzy Gad“ und ist hier bei Amazon erhältlich: amazon.com/dp/1484250303.

    – Ahmed Gad

    23. Juli 2019 um 0:56 Uhr

  • Kann keine Antwort posten, aber hier scheint es eine lösung zu geben: Es werden verschiedene Technologien demonstriert, darunter PySide-basierte QML-GUIs, die den Necessitas Qt-Port verwenden, und der Py4A/SL4A-basierte Ansatz, der mit dem WebKit von Android kombiniert werden kann und Python-Webframeworks wiederverwendet.

    – Basj

    30. Oktober 2019 um 8:18 Uhr

  • Ich verstehe nicht, warum diese Frage geschlossen wurde. Es sollte imho wiedereröffnet werden.

    – cknoll

    14. Oktober 2020 um 9:32 Uhr

Um deine erste Frage zu beantworten: Ja, es ist möglich, eine Android-Anwendung in reinem Python zu entwickelnum dies zu erreichen, schlage ich vor, dass Sie verwenden BeeWaredas ist nur ein Suite von Python-Toolsdie sehr gut zusammenarbeiten und es Ihnen ermöglichen, plattformnative Anwendungen in Python zu entwickeln.

Kasse Dieses Video vom Schöpfer von BeeWare, das seine Anwendung perfekt erklärt und demonstriert

Wie es funktioniert

Die bevorzugte Implementierungssprache von Android ist Java. Wenn Sie also eine Android-Anwendung in Python schreiben möchten, müssen Sie Ihren Python-Code auf einer Java Virtual Machine ausführen können. Das ist was VOC tut. VOC ist ein Transpiler – er nimmt Python-Quellcode, kompiliert ihn zu CPython-Bytecode und transpiliert diesen Bytecode dann in Java-kompatiblen Bytecode. Das Endergebnis ist, dass Ihre Python-Quellcodedateien direkt in eine Java-.class-Datei kompiliert werden, die in eine Android-Anwendung gepackt werden kann.

Mit VOC können Sie auch auf native Java-Objekte zugreifen, als wären sie Python-Objekte, Java-Schnittstellen mit Python-Klassen implementieren und Java-Klassen mit Python-Klassen unterklassen. Damit können Sie eine Android-Anwendung direkt gegen die nativen Android-APIs schreiben.

Sobald Sie Ihre native Android-Anwendung geschrieben haben, können Sie sie verwenden Aktentasche um Ihren Python-Code als Android-Anwendung zu verpacken.

Aktentasche ist ein Tool zum Konvertieren eines Python-Projekts in eine eigenständige native Anwendung. Sie können Projekte verpacken für:

  • Mac
  • Fenster
  • Linux
  • iPhone/iPad
  • Android
  • Apple TV
  • tvOS.

Sie können dieses native Android überprüfen Tic Tac Toe-App geschrieben in Python unter Verwendung der BeeWare-Suite. auf GitHub

Zusätzlich zu den BeeWare-Tools müssen Sie ein JDK und ein Android SDK installiert haben, um Ihre Anwendung testen zu können.

und um Ihre zweite Frage zu beantworten: Eine gute Umgebung kann alles sein, mit dem Sie sich wohlfühlen, sei es ein Texteditor und eine Befehlszeile oder eine IDE. Wenn Sie nach einer guten Python-IDE suchen, würde ich vorschlagen, dass Sie es versuchen Pycharmes hat eine kostenlose Community-Edition und eine ähnliche Umgebung wie Android Studio, da es von derselben Firma hergestellt wurde.

Ich hoffe, das war hilfreich

  • Liegt es nur an mir oder wurde VOC aufgegeben?

    – Nik

    22. November 2018 um 7:18 Uhr

  • Dies ist eine Sackgasse (Letztes Mal, als ich es überprüft habe: Dez. 2018). Eine oder mehrere Komponenten dieser zu komplexen Lösung funktionieren nicht mehr oder können sich nicht mehr auf dem neuesten Stand halten.

    – Beeren-Tsakala

    6. März 2019 um 11:39 Uhr

  • Nur ein Update für 2019, aber Kotlin ist jetzt die bevorzugte Sprache für die Android-Entwicklung.

    – DaveTheMinion

    4. Juli 2019 um 20:57 Uhr

  • @Basj Ich möchte sagen, dass es Beeware definitiv noch eine Weile geben wird, denn wenn Sie sich nur das GitHub-Konto ansehen, werden Sie feststellen, dass es aktiv entwickelt wird, und wenn Sie zum Gitter-Kanal gehen, können Sie das erreichen Sie immer das gesamte Team, insbesondere Dr. Russell (freakyboy), den Schöpfer, und die Community ist recht freundlich, und es gab auch einen sehr kürzlichen Tweet (26. September 2019) von ihrem offiziellen Konto, in dem angekündigt wurde, dass sie ein Bildungsstipendium von Python erhalten haben Software-Grundlage. Ich denke, es wäre Ihre Zeit wert, besonders wenn Sie Python als Sprache mögen

    – maroof shittu

    27. Oktober 2019 um 20:19 Uhr


  • BeeWare scheint Android (Java) derzeit ohnehin nicht zu unterstützen.

    – Markus Anderson

    16. Februar 2020 um 3:46 Uhr

Du könntest es versuchen BeeWare – wie auf ihrer Website beschrieben:

Schreiben Sie Ihre Apps in Python und veröffentlichen Sie sie unter iOS, Android, Windows, MacOS, Linux, Web und tvOS mit umfangreichen, nativen Benutzeroberflächen. Eine Codebasis. Mehrere Apps.

Macht Lust, jetzt Android-Apps in Python zu schreiben, und hat den Vorteil, dass Sie künftig kein weiteres Framework lernen müssen, wenn Sie am Ende auch etwas auf einer der anderen aufgeführten Plattformen machen wollen.

Hier ist die Tutorial für Android-Apps.

  • Haben Sie mit BeeWare selbst eine App erstellt?

    – Beeren-Tsakala

    6. März 2019 um 11:39 Uhr

Android, Python!

Als ich diese beiden Schlüsselwörter zusammen in Ihrer Frage sah, Kivi ist die, die mir zuerst in den Sinn kam.

Kivy-Logo

Bevor ich mit Android Studio zur nativen Android-Entwicklung in Java kam, hatte ich es versucht Kivi. Es ist einfach großartig. Hier sind ein paar Vorteile, die ich herausfinden konnte.

Einfach zu benutzen

Mit Python-Grundlagen werden Sie keine Probleme haben, es zu lernen.

Gute Gemeinschaft

Es ist gut dokumentiert und hat eine großartige, aktive Community.

Plattformübergreifend.

Mit diesem einzigen Framework können Sie Dinge für Android, iOS, Windows, Linux und sogar Raspberry Pi entwickeln. Open Source.

Es ist eine kostenlose Software

Zumindest einige seiner (plattformübergreifenden) Konkurrenten möchten, dass Sie eine Gebühr zahlen, wenn Sie eine kommerzielle Lizenz wünschen.

Beschleunigte Grafikunterstützung

KiviDie Grafik-Engine von , die auf OpenGL ES 2 aufbaut, macht es für Software geeignet, die eine schnelle Grafikwiedergabe erfordert, wie z. B. Spiele.

Kommen wir nun zum nächsten Teil der Frage, Sie können Android Studio IDE nicht für Kivy verwenden. Hier ist eine ausführliche Anleitung zum Einrichten der Entwicklungsumgebung.

  • Die Windows-Unterstützung hinkt weit hinter den Produktionsstandards (oder sogar dem Bastlerstandard) hinterher. Außerdem kann die Hälfte der Welt es wegen fehlender RTL-Unterstützung nicht nutzen.

    – Beeren-Tsakala

    6. März 2019 um 11:42 Uhr

  • Warum haben Sie Kivy verlassen und auf native Entwicklungstools umgestellt? Sie schlagen vor, dass es einige Nachteile hat.

    – Igoemon

    24. Januar 2020 um 7:32 Uhr

Es gibt zwei Hauptkonkurrenten für Python-Apps auf Android

Chaquopy

https://chaquo.com/chaquopy/

Dies integriert sich in das Android-Build-System und bietet eine Python-API für alle Android-Funktionen. Um die Website zu zitieren: “Das vollständige Android-API- und Benutzeroberflächen-Toolkit steht Ihnen direkt zur Verfügung.”

Beeware (Toga-Widget-Toolkit)

https://pybee.org/

Dies bietet einen Multi-Target-Transpiler und unterstützt viele Ziele wie Android und iOS. Es verwendet ein generisches Widget-Toolkit (Toga), das den Aufrufen der Hostschnittstelle zugeordnet ist.

Welcher?

Beides sind aktive Projekte und ihre Github-Konten zeigen eine ganze Reihe neuerer Aktivitäten.

Beeware Toga ist wie alle Widget-Bibliotheken gut geeignet, um die Grundlagen auf mehrere Plattformen zu übertragen. Wenn Sie grundlegende Designs haben und den Wunsch haben, auf andere Plattformen zu expandieren, sollte dies für Sie gut funktionieren.

Auf der anderen Seite ist Chaquopy viel präziser bei der Zuordnung der Python-API zu Android. Es ermöglicht Ihnen auch, Java einzumischen, was nützlich ist, wenn Sie vorhandenen Code aus anderen Ressourcen verwenden möchten. Wenn Sie strenge Designziele haben und hauptsächlich auf Android abzielen möchten, ist dies eine viel bessere Ressource.

1014020cookie-checkWie entwickle ich eine Android-App vollständig mit Python? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy