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
(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
(beeware-venv) C:\...>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
(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
(beeware-venv) C:\...>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
>
(beeware-venv) $ briefcase run android
Select device:
1) Create a new Android emulator
>
(beeware-venv) C:\...>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
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 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:
Demo-App 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.
Während die App ausgeführt wird, werden in der Konsole zahlreiche Meldungen angezeigt. Dabei handelt es sich um einen Stream der Anwendungsprotokolle aus dem Emulator. Durch Eingabe von Strg+C im Terminal wird die Anzeige der Informationen in der Konsole angehalten, der Emulator wird jedoch nicht geschlossen. Auf diese Weise können Sie neue Änderungen testen, ohne den Emulator neu starten zu müssen.
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 Briefcase verwenden, um Ihr physisches Gerät anzusteuern.
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 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
>
(beeware-venv) $ briefcase run android
Select device:
1) Pixel 3a (94ZZY0LNE8)
2) @beePhone (emulator)
3) Create a new Android emulator
>
(beeware-venv) C:\...>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 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 Übung 6 an, um das herauszufinden…