Tutorial 5 - Mobiles Arbeiten: Android

Jetzt nehmen wir unsere Anwendung und stellen sie als Android-Anwendung bereit.

Der Prozess der Bereitstellung einer Anwendung für Android ist dem Prozess der Bereitstellung als Desktop-Anwendung sehr ähnlich. Briefcase übernimmt die Installation von Abhängigkeiten für Android, einschließlich des Android SDK, des Android-Emulators und eines Java-Compilers.

Eine Android-App erstellen und kompilieren

Zuerst führen Sie den Befehl create aus. Dies lädt eine Android-App-Vorlage herunter und fügt Ihren Python-Code hinzu.

(beeware-venv) $ briefcase create android

[helloworld] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git, branch v0.3.18
...

[helloworld] Installing support package...
No support package required.

[helloworld] Installing application code...
Installing src/helloworld... done

[helloworld] Installing requirements...
Writing requirements file... done

[helloworld] Installing application resources...
...

[helloworld] Removing unneeded app content...
Removing unneeded app bundle content... done

[helloworld] Created build/helloworld/android/gradle

Wenn Sie briefcase create android zum ersten Mal ausführen, lädt Briefcase ein Java JDK und das Android SDK herunter. Die Dateigrößen und Downloadzeiten können beträchtlich sein; dies kann eine Weile dauern (10 Minuten oder länger, abhängig von der Geschwindigkeit Ihrer Internetverbindung). Wenn der Download abgeschlossen ist, werden Sie aufgefordert, die Android-SDK-Lizenz von Google zu akzeptieren.

Sobald dies abgeschlossen ist, haben wir in unserem Projekt ein Verzeichnis build\helloworld\android\gradle, das ein Android-Projekt mit einer Gradle-Build-Konfiguration enthält. Dieses Projekt enthält Ihren Anwendungscode und ein Support-Paket, das den Python-Interpreter enthält.

Wir können dann den Befehl build von Briefcase verwenden, um diese in eine Android APK App-Datei zu kompilieren.

(beeware-venv) $ briefcase build android

[helloworld] Updating app metadata...
Setting main module... done

[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
Building... done

[helloworld] Built build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk

Gradle kann stecken bleiben

Während des Schrittes briefcase build android gibt Gradle (das Werkzeug zur Erstellung der Android-Plattform) CONFIGURING: 100% aus und scheint nichts zu tun. Keine Sorge, es steckt nicht fest - es lädt weitere Android SDK Komponenten herunter. Je nach der Geschwindigkeit Ihrer Internetverbindung kann dies weitere 10 Minuten (oder länger) dauern. Diese Verzögerung sollte nur beim allerersten Mal auftreten, wenn Sie build ausführen; die Tools werden zwischengespeichert und beim nächsten Build werden die zwischengespeicherten Versionen verwendet.

Ausführen der Anwendung auf einem virtuellen Gerät

Wir sind nun bereit, unsere Anwendung zu starten. Sie können den Befehl run von Briefcase verwenden, um die Anwendung auf einem Android-Gerät auszuführen. Beginnen wir mit der Ausführung auf einem Android-Emulator.

Um Ihre Anwendung auszuführen, starten Sie briefcase run android. Daraufhin erhalten Sie eine Liste von Geräten, auf denen Sie die Anwendung ausführen können. Der letzte Punkt ist immer eine Option zum Erstellen eines neuen Android-Emulators.

(beeware-venv) $ briefcase run android

Select device:

  1) Create a new Android emulator

>

Nun können wir unser gewünschtes Gerät auswählen. Wählen Sie die Option „Einen neuen Android-Emulator erstellen“ und akzeptieren Sie die Standardauswahl für den Gerätenamen (beePhone).

Briefcase run wird das virtuelle Gerät automatisch starten. Wenn das Gerät hochfährt, sehen Sie das Android-Logo:

Booten eines virtuellen Android-Geräts

Booten eines virtuellen Android-Geräts

Sobald das Gerät hochgefahren ist, wird Briefcase Ihre Anwendung auf dem Gerät installieren. Sie sehen kurz einen Startbildschirm:

Virtuelles Android-Gerät vollständig gestartet, auf dem Startbildschirm

Virtuelles Android-Gerät vollständig gestartet, auf dem Startbildschirm

Die Anwendung wird dann gestartet. Während die App startet, wird ein Begrüßungsbildschirm angezeigt:

App-Startbildschirm

App-Startbildschirm

Der Emulator ist nicht gestartet!

Der Android-Emulator ist eine komplexe Software, die auf eine Reihe von Hardware- und Betriebssystemfunktionen angewiesen ist - Funktionen, die auf älteren Rechnern möglicherweise nicht verfügbar oder aktiviert sind. Wenn Sie Schwierigkeiten beim Starten des Android-Emulators haben, lesen Sie den Abschnitt „Anforderungen und Empfehlungen <https://developer.android.com/studio/run/emulator#requirements>“ in der Android-Entwicklerdokumentation.

Wenn die App zum ersten Mal gestartet wird, muss sie sich auf dem Gerät entpacken. Das kann ein paar Sekunden dauern. Sobald sie entpackt ist, sehen Sie die Android-Version unserer Desktop-App:

App aus Tutorial 2, vollständig gestartet

Demo-App vollständig gestartet

Wenn Sie nicht sehen, dass Ihre Anwendung startet, sollten Sie Ihr Terminal überprüfen, in dem Sie briefcase run ausgeführt haben, und nach Fehlermeldungen suchen.

Wenn Sie in Zukunft auf diesem Gerät arbeiten wollen, ohne das Menü zu benutzen, können Sie Briefcase den Namen des Emulators mitteilen, indem Sie briefcase run android -d @beePhone verwenden, um direkt auf dem virtuellen Gerät zu arbeiten.

Ausführen der App auf einem physischen Gerät

Wenn Sie ein physisches Android-Telefon oder -Tablet besitzen, können Sie es mit einem USB-Kabel an Ihren Computer anschließen und dann das Briefcase verwenden, um Ihr physisches Gerät anzuvisieren.

Android erfordert, dass Sie Ihr Gerät vorbereiten, bevor Sie es für die Entwicklung verwenden können. Sie müssen 2 Änderungen an den Optionen auf Ihrem Gerät vornehmen:

  • Entwickleroptionen aktivieren

  • USB-Debugging einschalten

Details zur Durchführung dieser Änderungen können in der Android-Entwicklerdokumentation <https://developer.android.com/studio/debug/dev-options#enable>`__ nachgelesen werden.

Sobald diese Schritte abgeschlossen sind, sollte Ihr Gerät in der Liste der verfügbaren Geräte erscheinen, wenn Sie briefcase run android ausführen.

(beeware-venv) $ briefcase run android

Select device:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulator)
  3) Create a new Android emulator

>

Hier sehen wir ein neues physisches Gerät mit seiner Seriennummer in der Einsatzliste - in diesem Fall ein Pixel 3a. Wenn Sie in Zukunft auf diesem Gerät arbeiten möchten, ohne das Menü zu verwenden, können Sie die Seriennummer des Telefons an Briefcase übergeben (in diesem Fall briefcase run android -d 94ZZY0LNE8). Dies wird direkt auf dem Gerät ausgeführt, ohne dass Sie gefragt werden.

Mein Gerät wird nicht angezeigt!

Wenn Ihr Gerät in dieser Liste nicht erscheint, haben Sie entweder das USB-Debugging nicht aktiviert (oder das Gerät ist nicht eingesteckt!).

Wenn Ihr Gerät zwar angezeigt wird, aber als „Unbekanntes Gerät (nicht für die Entwicklung autorisiert)“ aufgeführt ist, wurde der Entwicklermodus nicht korrekt aktiviert. Führen Sie die „Schritte zum Aktivieren der Entwickleroptionen <https://developer.android.com/studio/debug/dev-options#enable>“ erneut aus, und führen Sie „Briefcase run android“ erneut aus.

Nächste Schritte

Wir haben jetzt eine Anwendung auf unserem Telefon! Gibt es noch einen anderen Ort, an dem wir eine BeeWare-Anwendung einsetzen können? Schauen Sie sich Tutorial 6 an, um das herauszufinden…