Verwendung von Python Kivy ④ ~ Ausführung unter Android ~

Zusammenfassung

Die bisher erstellten Artikel lauten wie folgt.

Dieses Mal werde ich die Android-Ausgabe unter den mobilen Ausgaben (iOS, Android) erläutern. Dies ist ein Vorteil, wenn Kivy mit der Qt-Bibliothek verglichen wird. Von der Schlussfolgerung zuerst ist es persönlich subtil. Es ist kurz am Gürtel und lang am Tasuki, oder es ist schwer, dahinter zu stehen.

Was zu erstellen

Lassen Sie uns die vorherige Verknüpfung mit der Web-API (vom Senden und Empfangen von Anforderungen bis zum Anzeigen von Ergebnissen) auf einem Android-Gerät ausführen.

Zu verwendender Code

Der Inhalt ist fast der gleiche wie im vorherigen Code. Wir werden die geänderten Teile nach Bedarf vorstellen.

So führen Sie Kivy auf einem Android-Gerät aus

Es gibt drei Methoden, aber die Ausführungsmethode unterscheidet sich je nach Zweck.

① Führen Sie es auf Ihrem eigenen Android-Gerät aus (2) Erstellen Sie eine APK und verteilen Sie sie auf Google Play usw., damit sie von einer nicht festgelegten Anzahl von Personen verwendet werden kann. ③ Führen Sie Python auf dem Android-Terminal mit Python-for-Android aus

Im Fall von ① wird dies mithilfe einer Android-Anwendung namens Kivy Launcher realisiert. Dieses Mal werde ich mit dieser Methode erklären.

Installieren Sie im Fall von (2) ein Paket namens Buildozer unter Ubuntu. Im Falle von Windows wird VM verteilt, verwenden Sie dies bitte. Sie können es aus dem Bereich Virtual Machine unter https://kivy.org/#download herunterladen.

Im Falle einer tatsächlichen Verwendung ist es besser, sie tatsächlich mit dem Beitrag APK Nr. 2 erstellen, um die Kivy-Anwendung im Goole Play Store zu veröffentlichen auszuführen. Bitte nehmen Sie Bezug darauf.

Im Fall von (3) unterscheidet sich die Methode von (1) und (2), und die Methode besteht darin, das Python-Skript tatsächlich auf dem Android-Terminal auszuführen. Wenn Sie mit Qpython suchen, werden Sie verschiedene Dinge finden.

In Bezug auf den Inhalt dieses Bereichs [“Verwenden von Python mit Android” ab 2016](http://hhsprings.pinoko.jp/site-hhs/2016/08/2016%E5%B9%B4%E7%8F % BE% E5% 9C% A8% E3% 81% AE% E3% 80% 8Cpython-% E3% 82% 92-android-% E3% 81% A7% E4% BD% BF% E3% 81% 86% E3 Es wird im Artikel% 80% 8D /) ausführlich erklärt. Bitte lesen Sie es, wenn Sie interessiert sind.

Referenz

Informationen zur auszuführenden Python-Umgebung

Obwohl es sich um eine Verifizierungsumgebung handelt, wird Kivy 1.9.1 sein. Auf der anderen Seite ist Python ** Python 2.7 **. Auf der offiziellen Website von Kivy heißt es, dass Android vorläufig mit Python3 kompatibel ist. Ab Februar 2017 ist es jedoch besser zu glauben, dass es praktisch mit der Python2-Serie und nicht mit der Python3-Serie kompatibel ist. Der Grund wird später beschrieben Darüber hinaus ist iOS mit Python 2.7 kompatibel, und es scheint, dass die Python 3-Systemunterstützung derzeit unterstützt wird.

Über das Android-Terminal, das tatsächlich zur Überprüfung verwendet wird

Die Modelle, die ich ausprobiert habe, sind die folgenden zwei Typen.

Android selbst verfügt über eindeutige Funktionen für jeden Hersteller und jedes Modell, sodass es je nach Modell und Betriebssystem möglicherweise nicht funktioniert.

Führen Sie Kivy tatsächlich auf Android aus

Es wird die eigentliche Operation sein.

Über Kivy Launcher

Kivy Launcher ist eine App, die auf Google Play und mithilfe von Kivy auf Android verbreitet wird Sie können problemlos verwendete Python-Skripte verwenden. Das Folgende ist eine einfache Verwendung.

Außerdem erklären wir bei der Erläuterung der Verwendung die Verwendung von "Touch Tracer", einem Demo-Programm, das auf der offiziellen Website von Kivy veröffentlicht wird.

Referenz

Wie man Kivy Lancher benutzt

Bitte installieren Sie Kivy Lancher im Voraus im Play Store auf Android

① Verbinden Sie Ihr Android-Gerät über USB mit Ihrem PC.

0.png

Wählen Sie Dateiübertragung.

② Erstellen Sie einen Kivy-Ordner und platzieren Sie die Dateien

PC.jpg

Erstellen Sie ein Verzeichnis namens "Kivy". Erstellen Sie einen Ordner unter dem Verzeichnis und platzieren Sie das Programm.

Platzieren Sie die folgenden Dateien.

Es ist android.txt, aber der Inhalt ist wie folgt

title=Touchtracer
author=Kivy team
orientation=landscape

Geben Sie den Namen der App unter "Titel" und den Namen des Autors unter "Autor" ein. "Ausrichtung" gibt an, ob beim Start die Hoch- oder Querformatausrichtung angezeigt werden soll. "Landschaft" ist Querformat und "Hochformat" ist Hochformat.

Referenz: Informationen zum Hintergrundprozess von Kivy Launcher

Es ist ein Programm, das mit Kivy Lanucher gestartet wurde, aber es scheint, dass es im Hintergrund ausgeführt werden kann. Wenn Sie es verwenden, können Sie auch Alarm-Apps erstellen.

Referenz

③ Starten Sie die App und führen Sie sie aus

Ich werde es tatsächlich bewegen.

1. 1. Führen Sie Kivy Lancher aus

Führen Sie Kivy Lancher auf Ihrem Android-Gerät aus. 1.png

Der Wartebildschirm wird angezeigt. 3.png

2. Wählen Sie eine App

Eine Liste der Apps wird angezeigt. Wählen Sie daher eine App aus. 2.png

3. 3. App-Startbildschirm

Nach der Auswahl wird der Wartebildschirm angezeigt, und nach einer Weile des Stehens kann die ausgewählte Anwendung auf dem Terminal bedient werden.

4.png

Versuchen Sie, die vorherige App auszuführen

Lassen Sie uns tatsächlich die vorherige App ausführen. Ich versuche es wie "Touch Tracer" zu verschieben, aber wenn ich es aus Kivy Lancher auswähle und versuche es zu starten, funktioniert es nicht gut und die Anwendung selbst stürzt ab. Ich habe versucht, das Protokoll in .kivy des Android-Hauptgeräts zu sammeln. Unten finden Sie einen Auszug aus dem Inhalt des Protokolls.

[INFO              ] Kivy: v1.9.1
[INFO              ] Python: v2.7.2 (default, Mar 20 2016, 23:30:13) 

Es lief auf Python 2.7 ... Um das Programm auszuführen, das ich zuletzt erstellt habe, musste ich daher von Pytho3 nach Python2 konvertieren. Insbesondere wurden die folgenden Konvertierungen durchgeführt. Da ich Python aus der 3. Serie gestartet habe, habe ich die 2. Serie nicht mehr gemacht.

Von diesen wird die letzte Änderung von UrlRequest erklärt.

So verwenden Sie Kivys UrlRequest

Der korrigierte Teil in der Quelle ist unten extrahiert.

main.py



from kivy.network.urlrequest import UrlRequest
import urllib

class AddSearchBookForm(BoxLayout):
    def search_book(self):
        set_title = urllib.quote((self.search_input.text).encode('utf-8'))
        req_url = "http://iss.ndl.go.jp/api/sru?operation=searchRetrieve&query=title%3d%22{0}%22%20AND%20from=%22{1}%22&maximumRecords={2}&mediatype=1".format(set_title, set_fromdate, set_maximum_records)

        res = UrlRequest(req_url, self.gotBooklists)
        
    def gotBooklists(self, req, results):
        result_records = result_parse(results)

In Bezug auf UrlRequest sind mit dieser Änderung zwei Funktionen verbunden.

In der API-Referenz von UrlRequest lauten die Spezifikationen wie folgt.

req = UrlRequest(url, on_success, on_redirect, on_failure, on_error,
                 on_progress, req_body, req_headers, chunk_size,
                 timeout, method, decode, debug, file_path, ca_file,
                 verify)

Zuerst muss die URL eine% Zeichenfolge sein, also habe ich sie mit urllib in eine% Zeichenfolge konvertiert und in das erste Argument eingefügt. Darüber hinaus speichert die Anforderung des zur Laufzeit zurückgegebenen Werts das POST-Rückgabeergebnis von url. Aufgrund der asynchronen Kommunikation wird das Ergebnis jedoch nicht vom Server zurückgegeben und der Wert wird nicht sofort eingegeben, sodass das Programm fortgesetzt wird. Es wird sein. Wenn es so bleibt wie beim letzten Mal, besteht daher das Problem, dass die Verarbeitung des POST-Ergebnisses nicht gut verläuft. Es ist erforderlich, den Prozess (die Methode) festzulegen, wenn das POST-Ergebnis von der Serverseite im zweiten Argument on_success zurückgegeben wird, oder wait () für den Rückgabewert zu verwenden und auf die Rückgabe des Rückgabeergebnisses zu warten. .. Dieses Mal wird gotBooklists () mit der früheren Methode zur Verwendung von on_success auf on_sucess gesetzt, und der Prozess zum Parsen des Ergebnisses in gotBooklists () und zum Ausführen der Formatierung wird ausgeführt.

Referenz

Ausführungsergebnis

Das Programm konnte auf Kivy Lancher ausgeführt werden, wenn es mit Pytho2-Systemunterstützung betrieben wurde.

1_40.jpg

In Bezug auf die japanische Eingabe wurde IME bei der Eingabe in voller Breite unter Windows nicht geöffnet, aber IME wird bei der Eingabe von Japanisch auf Android-Terminals geöffnet, und Sie können bequem eingeben.

ideapad.jpg

Referenz: Ausführen einer Android-spezifischen API

Ich werde es diesmal nicht verwenden, aber Kivy kann mit Plyer und Pyjnius Android-spezifische JAVA-APIs erstellen. Auf diese Weise können Sie die Kamera in der App starten, um ein Bild aufzunehmen oder eine E-Mail zu senden. Standardfunktionen in Android-Apps können mit Plyer oder Pyjnius erreicht werden.

Ich werde den Artikel der Person, die tatsächlich in Japan verwendet wird, und den Link der offiziellen Website geben

Referenz: Unterstützung für iOS

Ich habe iOS noch nicht ausprobiert, aber es ist möglich, iOS-Apps zu entwickeln. Der Code ist nur mit der Python 2-Serie kompatibel, nicht mit der Pytho 3-Serie. Es scheint, dass Sie ein Projekt für Xcode mit einer Funktion namens Toolchain erstellen und aus diesem Projekt erstellen können.

Referenz

In Bezug auf die iOS-spezifische API scheint dies auch in der Anwendung mithilfe von Pyobjus verwendet werden zu können

Referenz

In Japan erstellt Professor Haraguchi von der Otaru University of Commerce eine Kivy-App und stellt sie in den App Store. Dr. Haraguchi ist auch eines der wichtigsten Mitglieder der Übersetzung von Kivys offiziellem Handbuch (https://pyky.github.io/kivy-doc-ja/).

Referenz Haraguchi-Labor der Handelsuniversität Otaru

Referenz So verwenden Sie eine externe Python-Bibliothek

Um nicht standardmäßige Python-Bibliotheken wie Matplotlib auf Mobilgeräten zu verwenden, müssen Sie eine Zusatzfunktion namens Kivy Garden verwenden.

Referenz

Referenz Informationen zu mit Kivy erstellten Apps

Wenn Sie sich das Wiki auf der offiziellen Website ansehen, finden Sie eine Liste der mit Kivy erstellten App-Projekte. Wenn Sie sich das ansehen, können Sie sehen, welche Art von Apps Sie tatsächlich erstellen können.

Referenz

Zusammenfassung

Ich konnte tatsächlich eine Anwendung ausführen, die in Zusammenarbeit mit der Serverseite auf einem Android-Gerät angezeigt wird. In Bezug auf Android-Apps ist es meiner Meinung nach möglich, die meisten Dinge wie kartenbasierte soziale Spiele und Such-Apps zu entwickeln, wenn es sich um eine bildbasierte 2D-App handelt.

Persönlich ist es eine heikle Angelegenheit, ob Sie Kivy beim Erstellen einer Android-Anwendung verwenden oder nicht. Ich denke, dass der Mainstream bei der Veröffentlichung von Android-Apps darin besteht, auch die Entwicklung der iOS-Version zu berücksichtigen. In diesem Fall ist die Entwicklung mit dem Pytho2-System eine Voraussetzung, die Verarbeitung von Japanisch (Multi-Byte-Zeichen) dauert jedoch einige Zeit. Da es in Japan keine Community gibt, denke ich, dass es an dieser Stelle besser wäre, Multi-Plattformen mit C # wie Xamarin und Unity zu entwickeln oder mit Andori native zu entwickeln. Ich denke nicht, dass es aktiv übernommen wird, zumindest in Kombination mit der Anzahl der Python-Ingenieure in Japan.

Ich denke, dass sich die Geschichte wieder ändern wird, wenn die Python 3-Unterstützung offiziell auf iOS veröffentlicht wird und eine einfache Vorschau-Anwendung wie Kivym Lancher erstellt wird, aber in diesem Stadium wird sie so bewertet.

Gesamtübersicht

Ich erklärte viermal, wie man Kivy benutzt. Animation ist eine wichtige Funktion, die ich noch nicht besprochen habe, aber ich werde die Gelegenheit nutzen, sie zu berühren. Wenn Sie die Erklärung bisher gelesen haben, können Sie eine allgemeine Anwendung entwickeln oder loslegen. Ich denke auch, dass Kivy eine vage Vorstellung davon hat, was Bibliotheken können und was nicht.

Die Vor- und Nachteile von Kivy sind wie folgt.

Vorteil

Nachteil

Auf dieser Grundlage hoffe ich, dass Sie überlegen, ob Sie Kivy verwenden sollen oder nicht. Da es sich bei Bugs um Open Source-Fehler handelt, werden sie verbessert, indem Probleme und Anforderungen aufgeworfen, verbessert und festgeschrieben werden. Ich denke, dass dies vom Benutzer abhängt.

Referenz

Kivy interagiert immer noch aktiv mit Github und ich denke, es hat Potenzial als Open Source. Ich hoffe, Sie haben diesen Artikel gelesen und möchten Kivy verwenden.

Recommended Posts

Verwendung von Python Kivy ④ ~ Ausführung unter Android ~
[Kivy] So installieren Sie Kivy unter Windows [Python]
Memorandum über die Verwendung von Gremlin Python
python3: Verwendung der Flasche (2)
[Python] Verwendung von Liste 1
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
Verwendung von Django mit Google App Engine / Python
Wie man Python auf Android genießt !! Programmieren für unterwegs !!
Python: So verwenden Sie Async mit
[Python] Verwendung der Pandas-Serie
Verwendung von Anfragen (Python Library)
Verwendung von SQLite in Python
Hinweise zur Verwendung von Pywinauto
Hinweise zur Verwendung von featuretools
Wie benutzt man Homebrew in Debian?
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt
Verwendung der Python-API von OpenPose
Verwendung von ChemSpider in Python
Python: Verwendung von pydub (Wiedergabe)
Verwendung von PubChem mit Python
Verwendung der Zip-Funktion von Python
[Python] Verwendung der Typetalk-API
[Hyperledger Iroha] Hinweise zur Verwendung des Python SDK
[Python] Zusammenfassung der Verwendung von Pandas
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Wie man pydoc auf Python Interpreter liest
So installieren und verwenden Sie pandas_datareader [Python]
Wie man Mecab, neologd-ipadic auf Colab verwendet
[Python] Verwendung von __command__, Funktionserklärung
[Python] Verwendung von import sys sys.argv
So verwenden Sie Google Assistant unter Windows 10
So löschen Sie Python 2.x auf einem Mac.
[Python] Organisieren der Verwendung für Anweisungen
[Python2.7] Zusammenfassung der Verwendung von unittest
Python: Verwendung von Einheimischen () und Globalen ()
Verwendung von __slots__ in der Python-Klasse
Installieren Sie Python auf xserver, um pip zu verwenden
Verwendung von "deque" für Python-Daten
Verwendung von Python zip und Aufzählung
[Python] Verstehen, wie rekursive Funktionen verwendet werden
Zusammenfassung der Verwendung der Python-Liste
Verwendung regulärer Ausdrücke in Python
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
So verwenden Sie Map in ViewPager von Android
Verwendung ist und == in Python
[Frage] Wie verwende ich plot_surface von Python?
Verwendung von Python Kivy (Referenz) -Ich habe die Kivy-Sprache der API-Referenz übersetzt-
So verwenden Sie Python in Pyenv unter MacOS mit PyCall