Bereitstellung einer Anwendung auf Android
Dieser Artikel beschreibt die technischen Schritte, die erforderlich sind, um eine Qt-Anwendung auf einem Android-Gerät bereitzustellen.
Optionen für die Android-Paketierung
Sie können Code unter Android auf drei Arten verpacken: entweder als Anwendungspaket (APK), als Android App Bundle (AAB) oder als Android-Archiv (AAR). Bei jedem handelt es sich um einen spezifischen ZIP-Dateityp, der einer vordefinierten Verzeichnisstruktur folgt. Die Unterschiede zwischen diesen Formaten sind:
- APK-Dateien können auf einem Gerät bereitgestellt und ausgeführt werden.
- Ein AAB ist für die Verarbeitung durch den Google Play Store vorgesehen und dient dazu, APK-Dateien für verschiedene Gerätearchitekturen und Formfaktoren zu generieren.
- Ein AAR unterscheidet sich grundlegend von den Formaten APK und AAB, da es sich um eine Android-Bibliothek handelt. Sie können es als Abhängigkeit für ein Android-App-Modul verwenden, es jedoch nicht eigenständig ausführen. Weitere Informationen finden Sie unter Android: Android Archive (AAR).
Android-Anwendungsbündel
Zum lokalen Testen der Anwendung eignet sich das APK-Format, da dieses direkt auf dem Gerät installiert und ausgeführt werden kann. Für die Veröffentlichung im Google Play Store wird stattdessen die Verwendung von AAB empfohlen, das ein ähnliches Layout aufweist. Ein weiterer Vorteil von AAB besteht darin, dass Sie alle Ziel-ABIs in ein und demselben Bundle einbinden können, ohne die Größe des eigentlichen Pakets zu erhöhen, das Ihre Nutzer herunterladen. Bei Verwendung von AAB generiert der Google Play Store optimierte APK-Pakete für die Geräte, von denen die Download-Anfrage stammt, und signiert diese automatisch mit Ihrem Publisher-Schlüssel. Weitere Informationen finden Sie unter „Veröffentlichung auf Google Play“.
Weitere Informationen zum AAB-Format finden Sie unter „Android App Bundles“.
In beiden Fällen wird das Anwendungs-Bundle aus einer bestimmten Verzeichnisstruktur generiert, die die „ shared “-Bibliotheken Ihres Projekts sowie die von Ihrer Anwendung benötigten Qt-Abhängigkeiten enthält. Darüber hinaus werden alle Assets, Ressourcen, „ jar “-Dateien oder der Java-Code des Projekts kompiliert und einbezogen.
Erstellen des Anwendungsbündels
Es wird empfohlen, „ Qt Creator “ zur Bereitstellung von Qt für Android-Apps zu verwenden. Alternativ kann dies auch über die Befehlszeile mithilfe von CMake oder qmake erfolgen. Weitere Informationen finden Sie unter „Erstellen von Qt für Android-Projekten über die Befehlszeile“.
Der Paketierungs- und Bereitstellungsprozess wird von CMake oder qmake übernommen, die im Hintergrund das Tool „androiddeployqt“ nutzen, um die Besonderheiten der Erstellung und Bereitstellung einer Android-App zu verwalten. Qt Creator verwendet ebenfalls dasselbe Tool.
Erweiterung von Qt um Android-Funktionen
Standardmäßig übernimmt Qt für Android den Großteil der Arbeit, um eine Android-App zum Laufen zu bringen: Die nützlichsten APIs stehen direkt über Qt zur Verfügung, und für APIs, die nicht ohne Weiteres verfügbar sind, kann „ QJniObject “ aufgerufen werden. Gleiches gilt für CMake, das die verschiedenen Erstellungs- und Bereitstellungsszenarien abwickelt. In einigen anderen Fällen kann es jedoch erforderlich sein, die volle Leistungsfähigkeit nativer Android-Funktionen zu nutzen, wie zum Beispiel das Schreiben von Java-/Kotlin-Code oder die Verwendung der Android-Ressourcenverwaltung. Qt ermöglicht dies, indem es dem Benutzer erlaubt, den Satz an Vorlagen zu erweitern.
Die von Qt verwendeten Standardvorlagen befinden sich im Installationspfad von Qt für Android, beispielsweise unter „ ~/Qt/<version>/android_<abi>/src/android/templates “ für Unix. Um diese Vorlagen zu verwenden, können Sie sie mit „ Qt Creator “ in Ihr Projekt kopieren lassen; siehe „Qt Creator: Android Deploy Configuration“. Alternativ können Sie sie manuell in den Quellcode Ihres Projekts in ein Unterverzeichnis namens „ android “ kopieren. Stellen Sie anschließend sicher, dass Sie die folgende Eigenschaft in Ihrer „ CMakeLists.txt “-Datei definieren:
set_property(TARGET target_name PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
"${CMAKE_CURRENT_SOURCE_DIR}/android")Oder für qmake in Ihrer Datei „ pro “:
android: ANDROID_PACKAGE_SOURCE_DIR = $$PWD/androidHinweis: Bei Verwendung von ` Qt Creator` sind Dateien unter diesem Pfad standardmäßig in den Projektdateien sichtbar, wenn CMake verwendet wird. Um dasselbe Verhalten mit qmake zu erzielen, fügen Sie diese Dateipfade manuell mithilfe von `DISTFILES` zu Ihrem Projekt hinzu.
Der Build-Prozess kopiert die Vorlagen in das Build-Verzeichnis „ <build_path>/android-build “ aus Ihrem Projekt oder aus den Standardvorlagen, falls im Projekt „ QT_ANDROID_PACKAGE_SOURCE_DIR “ nicht festgelegt wurde. Danach dient das Verzeichnis „ <build_path>/android-build “ als Paketverzeichnis. Von dort aus wird das Anwendungsbündel mit Gradle erstellt.
Wenn QT_ANDROID_GRADLE_MULTI_MODULE aktiviert ist, enthält das Paketverzeichnis stattdessen ein Gradle-Projekt mit mehreren Modulen. Die Anwendung wird dann aus <build_path>/android-build/app gepackt, und jede dynamische Funktion erhält daneben ein eigenes Modul.
Sehen wir uns nun die verschiedenen Teile an, mit denen der Benutzer arbeiten kann, nachdem er die Standardvorlagen erweitert hat.
AndroidManifest.xml
Die Datei „ AndroidManifest.xml “ enthält detaillierte Metainformationen zu Ihrer Anwendung. Diese Informationen dienen dazu, Ihr Anwendungsbundle anzupassen, und werden vom Gerät verwendet, um zu entscheiden, welche Funktionen aktiviert werden sollen, wie beispielsweise die Standardausrichtung der Anwendung. Darüber hinaus werden sie vom Google Play Store für Informationen zum Versionscode, zur Geräteunterstützung, zum Paketnamen und vielem mehr genutzt. Das Android-Manifest wird auch zur Definition von Android-Diensten und benutzerdefinierten Android-Aktivitäten verwendet.
Weitere Informationen zum „ AndroidManifest.xml “ finden Sie in der Dokumentation zur Android-Manifest-Datei sowie unter {Qt Creator: Android-Bereitstellungskonfiguration}{Bearbeiten von Manifest-Dateien}.
Gradle-Dateien
Gradle wird zum Erstellen von Android-Paketen verwendet. Qt enthält zwei Sätze von Gradle-bezogenen Dateien:
- den Gradle-Wrapper, der zum Herunterladen einer bestimmten Version von Gradle selbst dient, und die Build-Skripte, mit denen der Gradle-Build aufgerufen wird. Diese Dateien sind im Lieferumfang von Qt enthalten, beispielsweise unter
~/Qt/<version>/android_<abi>/src/3rdparty/gradle.Hinweis: In der Regel wird empfohlen, dieselbe Gradle-Version zu verwenden, die im Lieferumfang von Qt enthalten ist. Wenn Sie jedoch eine andere Gradle-Version verwenden möchten, können Sie den Gradle-Wrapper unter
gradle-wrapper.propertiesanpassen und die gewünschte Gradle-Version festlegen. - Die Gradle-Konfigurationsdatei „
build.gradle“, die sich in den Android-Vorlagen befindet. Diese Datei wird von Gradle benötigt und kann zur Anpassung des Builds verwendet werden. Damit lassen sich das Build-Ziel oder die Mindest-API festlegen sowie Bibliotheksabhängigkeiten hinzufügen. Außerdem kann damit das Android-Gradle-Plugin festgelegt werden, das eine erforderliche Gradle-Abhängigkeit für den Build von Android-Apps darstellt. Ein Beispiel hierfür ist:buildscript { ... dependencies { classpath 'com.android.tools.build:gradle:9.2.1' } }Weitere Informationen finden Sie unter „Android: Build-Konfigurationsdateien“.
Java/Kotlin-Code
Um Java-/Kotlin-Code einzubinden, der auf APIs abzielt, die Qt nicht abdeckt, oder aus einem anderen Grund, platzieren Sie den Code unter dem Pfad „ <QT_ANDROID_PACKAGE_SOURCE_DIR>/src/ “. So können Sie beispielsweise Java-Methoden aus Qt-Code heraus aufrufen. Ein Beispiel finden Sie unter „Qt für Android – Notifier-Beispiel“.
Ressourcen
Android ermöglicht das Hinzufügen von Ressourcendateien wie Symbolen, Bildern, Zeichenfolgen, Farben usw. Auf diese Ressourcen kann direkt aus Java-/Kotlin-Code oder über die Manifestdatei verwiesen werden. Solche Dateien können Ihrem Projekt unter <QT_ANDROID_PACKAGE_SOURCE_DIR>/res/ hinzugefügt werden. App-Symbole können beispielsweise unter res/drawable/icon.png hinzugefügt werden.
Weitere Informationen finden Sie unter „Android: Übersicht über App-Ressourcen“.
Interne Qt-Ressourcen
Standardmäßig bündelt Qt einige Ressourcen, die für den ordnungsgemäßen Betrieb der Apps erforderlich sind. Unter Unix befinden sich diese Ressourcen beispielsweise unter „ ~/Qt/<version>/android_<abi>/src/android/templates/res “.
strings.xml
Diese Datei befindet sich unter res/values/strings.xml. Sie enthält Zeichenfolgen, die die Qt-Bibliothek verwendet, um auf Übersetzungen von Meldungen in verschiedenen Sprachen zu verweisen.
libs.xml
Diese Datei befindet sich unter res/values/libs.xml. Sie dient ausschließlich der Verwaltung von Bereitstellungsinformationen der Qt-Bibliotheken, und es wird nicht empfohlen, sie manuell zu ändern.
Android-Assets
Weitere Informationen zur Verwaltung von Android-Assets finden Sie unter „Ressourcen hinzufügen“.
Android-Bibliotheken
Weitere Informationen zur Verwendung von Bibliotheken von Drittanbietern in Ihrem Qt-Projekt finden Sie unter „Einbinden einer Bibliothek in ein Android-Projekt“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.