Déploiement d'une application sur Android
Cet article décrit les étapes techniques nécessaires au déploiement d'une application Qt sur un appareil Android.
Options de packaging Android
Il existe trois façons de créer un paquet de code sous Android : sous forme de paquet d'application (APK), de bundle d'application Android (AAB) ou d'archive Android (AAR). Chacun de ces formats est un type spécifique de fichier ZIP qui respecte une structure de répertoires prédéfinie. Les différences entre ces formats sont les suivantes :
- Les fichiers APK peuvent être déployés et exécutés sur un appareil.
- Un AAB est destiné à être interprété par le Google Play Store et sert à générer des fichiers APK pour différentes architectures d’appareils et différents formats.
- Un fichier AAR diffère fondamentalement des formats APK et AAB en ce qu’il s’agit d’une bibliothèque Android. Vous pouvez l’utiliser comme dépendance pour un module d’application Android, mais vous ne pouvez pas l’exécuter seul. Pour plus d’informations, consultez Android : Archive Android (AAR).
Ensemble d'applications Android
Pour tester l'application en local, le format APK est adapté, car il peut être installé et exécuté directement sur l'appareil. Pour la distribution sur le Google Play Store, il est recommandé d'utiliser plutôt le format AAB, qui présente une structure similaire. L’AAB présente l’avantage supplémentaire de vous permettre d’inclure toutes les ABI cibles dans un même bundle sans augmenter la taille du paquet effectivement téléchargé par vos utilisateurs. Lorsque vous utilisez l’AAB, le Google Play Store génère des paquets APK optimisés pour les appareils à l’origine de la demande de téléchargement et les signe automatiquement avec votre clé d’éditeur. Pour plus d’informations, consultez la section Publication sur Google Play.
Pour plus d’informations sur le format AAB, consultez la documentation Android App Bundles.
Dans les deux cas, le bundle d’application est généré à partir d’une structure de répertoires spécifique contenant les bibliothèques shared de votre projet et les dépendances Qt requises par votre application. De plus, tous les éléments jar, les ressources, les fichiers ou le code Java du projet sont compilés et inclus.
Génération du bundle d'application
Il est recommandé d’utiliser Qt Creator pour déployer des applications Qt pour Android. Sinon, cette opération peut être effectuée via la ligne de commande à l’aide de CMake ou de qmake. Pour plus d’informations, consultez la section « Compilation de projets Qt pour Android à partir de la ligne de commande ».
Le processus de création du paquet et de déploiement est géré par CMake ou qmake qui, en arrière-plan, utilisent l'outil androiddeployqt pour gérer les spécificités de la compilation et du déploiement d'une application Android. Qt Creator utilise également ce même outil.
Extension de Qt avec les fonctionnalités Android
Par défaut, Qt pour Android se charge de la majeure partie du travail nécessaire à la mise en place et au fonctionnement d’une application Android, en mettant à disposition les API les plus utiles directement depuis Qt ou en utilisant QJniObject pour appeler les API qui ne sont pas directement accessibles. Il en va de même pour CMake, qui gère les différents cas de compilation et de déploiement. Cependant, dans certains autres cas, il peut s’avérer nécessaire de disposer de toute la puissance des fonctionnalités natives d’Android, comme l’écriture de code Java/Kotlin ou l’utilisation de la gestion des ressources Android. Qt permet cela en donnant à l’utilisateur la possibilité d’étendre l’ensemble des modèles.
Les modèles par défaut utilisés par Qt se trouvent dans le répertoire d’installation de Qt pour Android, par exemple sous ~/Qt/<version>/android_<abi>/src/android/templates pour Unix. Pour utiliser ces modèles, vous pouvez demander à Qt Creator de les copier dans votre projet ; voir Qt Creator: Configuration du déploiement Android Deploy Qt. Vous pouvez également les copier manuellement dans le répertoire source de votre projet, dans un sous-répertoire nommé « android ». Veillez ensuite à définir la propriété suivante dans votre fichier « CMakeLists.txt » :
set_property(TARGET target_name PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
"${CMAKE_CURRENT_SOURCE_DIR}/android")Ou, pour qmake, dans votre fichier ` pro ` :
android: ANDROID_PACKAGE_SOURCE_DIR = $$PWD/androidRemarque : lorsque vous utilisez ` Qt Creator`, les fichiers situés sous ce chemin d’accès sont, par défaut, visibles dans les fichiers du projet si vous utilisez CMake. Pour obtenir le même comportement avec qmake, ajoutez manuellement ces chemins d’accès à votre projet à l’aide de `DISTFILES`.
Le processus de compilation copie les modèles dans le répertoire de compilation <build_path>/android-build à partir de votre projet ou à partir des modèles par défaut si le projet n'a pas défini QT_ANDROID_PACKAGE_SOURCE_DIR. Ensuite, le répertoire <build_path>/android-build sert de répertoire de packaging. Le bundle d'application est créé à partir de là à l'aide de Gradle.
Lorsque QT_ANDROID_GRADLE_MULTI_MODULE est activé, le répertoire de packaging contient à la place un projet Gradle composé de plusieurs modules. L’application est alors packagée à partir de <build_path>/android-build/app, et chaque fonctionnalité dynamique dispose de son propre module à côté.
Passons maintenant en revue les différents éléments avec lesquels l’utilisateur peut travailler après avoir étendu les modèles par défaut.
AndroidManifest.xml
Le fichier AndroidManifest.xml fournit des méta-informations détaillées sur votre application. Ces informations servent à personnaliser le bundle de votre application et sont utilisées par l'appareil pour déterminer les fonctionnalités à activer, telles que l'orientation par défaut de l'application. De plus, elles sont utilisées par le Google Play Store pour obtenir des informations sur le code de version, la prise en charge des appareils, le nom du package et bien d'autres éléments. Le manifeste Android sert également à définir les services Android et les activités Android personnalisées.
Pour plus d’informations sur l’ AndroidManifest.xml, consultez la documentation relative au fichier Android Manifest, ainsi que {Qt Creator: Configuration du déploiement Android}{Modification des fichiers Manifest}.
Fichiers Gradle
Gradle est utilisé pour créer des paquets Android. Qt comprend deux ensembles de fichiers liés à Gradle :
- le wrapper Gradle, qui sert à télécharger une version spécifique de Gradle, et les scripts de compilation utilisés pour lancer la compilation Gradle. Ces fichiers sont fournis avec Qt, par exemple à l'adresse
~/Qt/<version>/android_<abi>/src/3rdparty/gradle.Remarque : il estgénéralement recommandé d'utiliser la même version de Gradle que celle fournie avec Qt. Toutefois, si vous souhaitez utiliser une autre version de Gradle, vous pouvez modifier le wrapper Gradle
gradle-wrapper.propertieset le configurer pour la version de Gradle de votre choix. - Le fichier de configuration Gradle
build.gradle, qui se trouve dans les modèles Android. Ce fichier est requis par Gradle et permet de personnaliser la compilation. Il permet notamment de définir la cible de compilation ou l’API minimale, ou encore d’ajouter des dépendances de bibliothèques. Il permet également de configurer le plugin Android Gradle, qui est une dépendance Gradle obligatoire pour la compilation d’applications Android. En voici un exemple :buildscript { ... dependencies { classpath 'com.android.tools.build:gradle:9.2.1' } }Pour plus d’informations, consultez la section Android : Fichiers de configuration de compilation.
Code Java/Kotlin
Pour inclure du code Java/Kotlin afin de cibler certaines API non prises en charge par Qt ou pour toute autre raison, placez ce code dans le répertoire <QT_ANDROID_PACKAGE_SOURCE_DIR>/src/. Vous pouvez par exemple appeler des méthodes Java depuis du code Qt. Pour un exemple, consultez l’exemple « Qt for Android Notifier ».
Ressources
Android permet d’ajouter des fichiers de ressources tels que des icônes, des images, des chaînes de caractères, des couleurs, etc. Ces ressources peuvent être référencées directement depuis le code Java/Kotlin ou depuis le fichier manifeste. Tous ces fichiers peuvent être ajoutés à votre projet dans le répertoire <QT_ANDROID_PACKAGE_SOURCE_DIR>/res/. Par exemple, les icônes d’application peuvent être ajoutées dans le répertoire res/drawable/icon.png.
Pour plus d'informations, consultez Android : Présentation des ressources d'application.
Ressources internes de Qt
Par défaut, Qt intègre quelques ressources nécessaires au bon fonctionnement des applications. Sous Unix, par exemple, ces ressources se trouvent dans le répertoire ~/Qt/<version>/android_<abi>/src/android/templates/res.
strings.xml
Ce fichier se trouve à l'emplacement res/values/strings.xml. Il contient les chaînes de caractères utilisées par la bibliothèque Qt pour référencer les traductions des messages dans différentes langues.
libs.xml
Ce fichier se trouve à l'adresse res/values/libs.xml. Il sert uniquement à gérer les informations de déploiement des bibliothèques Qt, et il n'est pas recommandé de le modifier manuellement.
Ressources Android
Pour plus d'informations sur la gestion des ressources Android, consultez la section « Ajouter des ressources ».
Bibliothèques Android
Pour plus d'informations sur l'utilisation de bibliothèques tierces dans votre projet Qt, consultez la section « Intégration d'une bibliothèque dans un projet Android ».
© 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.