Portage vers Android
La plupart des applications Qt devraient pouvoir être portées facilement sur Android, à moins qu'elles ne dépendent d'une fonctionnalité matérielle ou logicielle spécifique non prise en charge par Android.
L'approche de portage diffère selon que l'application existante est basée sur QML ou sur des widgets, selon l'outil de compilation que vous comptez utiliser, et selon que vous effectuez un portage à partir d'une application mobile ou de bureau.
Les applications basées sur QML et construites avec CMake sont considérées comme la meilleure approche pour les applications mobiles.
Portage à partir d’applications Qt de bureau
La majeure partie de votre code Qt existant devrait fonctionner, mais vous devrez prendre certaines décisions concernant l’évolutivité de votre interface utilisateur et la mise en page pour différentes orientations et tailles d’écran. Envisagez une approche de mise en page adaptative pour tirer pleinement parti des applications « Qt Qml ».
Certains aspects ne sont pas directement liés à l'utilisation de Qt, tels que les directives des boutiques d’applications, les consignes relatives aux thèmes et d’autres éléments susceptibles d’influencer la manière dont vous développez votre application. Ces points ne seront pas abordés ici.
Ajout de ressources
La plupart des applications ont besoin de ressources. Nous abordons ici l’impact de cet aspect sur le portage de votre application vers Android.
Utilisation du système de ressources Qt
Comme la plupart des applications d’interface utilisateur, les applications Qt dépendent également de ressources telles que des images, des icônes, des fichiers de traduction, etc. Ces ressources doivent être disponibles sur l’appareil, car elles sont indispensables au bon fonctionnement de l’application.
L’option la plus pratique consiste à regrouper les ressources dans un fichier qrc, qui est intégré au binaire de l’application. Cette approche réduit considérablement l’effort de portage et offre un accès plus rapide aux ressources. Il s’agit également d’une approche multiplateforme, ce qui facilite le portage vers d’autres plateformes.
Par défaut, toutes les applications Qt peuvent accéder au contenu d’un fichier qrc à l’aide du préfixe « :/ » ou du préfixe de schéma d’URL « qrc: ». Pour en savoir plus sur les fichiers qrc et leur gestion, consultez le système de ressources Qt.
Ajout de ressources à l’aide de l’approche par ressources
Qt pour Android fournit un système de fichiers virtuel spécial basé sur le mécanisme « Assets » d’Android. Les fichiers placés dans le répertoire «ANDROID_PACKAGE_SOURCE_DIR/assets/ » sont intégrés au paquet de votre application.
L'approche par « assets » constitue la meilleure option pour une meilleure interopérabilité avec les API Android. Vous pouvez accéder à toutes les ressources du répertoire à l'aide du préfixe « assets: ». Contrairement au format qrc, cette approche est spécifique à Android et ne constitue pas une solution multiplateforme.
Remarque : l’utilisation du système de ressources Qt implique que les fichiers « qrc » soient intégrés dans les bibliothèques partagées, lesquelles doivent d’abord être décompressées puis chargées par l’éditeur de liens, tandis que les ressources Android sont compressées dans l’APK et peuvent être utilisées directement dans votre application. Cela signifie que l’utilisation des ressources Android peut prendre moins de place, mais qu’il ne s’agit pas d’une solution multiplateforme avec Qt.
L’approche par ressources avec CMake
Si vous débutez avec CMake ou si vous utilisez CMake avec Qt pour la première fois, consultez la section « Compilation avec CMake ». Ici, nous nous concentrerons sur les étapes à suivre pour ajouter des ressources.
Vous souhaiterez probablement modifier certains paramètres gérés par le fichier manifeste Android. Consultez la section « Configuration du fichier manifeste Qt pour Android » pour plus d’informations à ce sujet. Vous avez donc probablement déjà défini QT_ANDROID_PACKAGE_SOURCE_DIR comme suit :
set_property(TARGET target_name PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
"${CMAKE_CURRENT_SOURCE_DIR}/android")Vous pouvez désormais placer vos ressources directement dans ce dossier ou définir une étape personnalisée avec CMake pour les copier depuis le chemin d’accès principal du projet vers le chemin d’accès des ressources.
Vous pouvez ensuite accéder à cette ressource image depuis C++ comme suit :
QImage image("assets:/images/happy.png");© 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.