En esta página

Desplegar una aplicación en Android

Este artículo describe los pasos técnicos necesarios para desplegar una aplicación Qt en un dispositivo Android.

Opciones de empaquetado en Android

Puedes empaquetar código en Android de tres maneras: como un Paquete de Aplicación (APK), un Paquete de Aplicación Android (AAB), o un Archivo Android (AAR). Cada uno de ellos es un tipo específico de formato ZIP que sigue una estructura de directorios predefinida. Las diferencias entre estos formatos son:

  • Los archivos APK pueden desplegarse y ejecutarse en un dispositivo.
  • Un AAB está destinado a ser interpretado por la tienda Google Play y se utiliza para generar archivos APK para diferentes arquitecturas de dispositivos y factores de forma.
  • Un AAR difiere fundamentalmente de los formatos APK y AAB en que es una biblioteca de Android. Puede utilizarlo como dependencia para un módulo de aplicación Android, pero no puede ejecutarlo por sí mismo. Para obtener más información, consulte Android: Android Archive (AAR).

Paquete de aplicaciones Android

Para probar la aplicación localmente, el formato APK es adecuado, ya que puede instalarse y ejecutarse directamente en el dispositivo. Para la distribución a la tienda Google Play, se recomienda utilizar AAB en su lugar, que tiene un diseño similar. La ventaja añadida de AAB es que puede incluir todas las ABI de destino en el mismo paquete sin aumentar el tamaño del paquete real descargado por sus usuarios. Al utilizar AAB, la tienda Google Play genera paquetes APK optimizados para los dispositivos que emiten la solicitud de descarga y los firma automáticamente con tu clave de editor. Para obtener más información, consulte Publicación en Google Play.

Para obtener más información sobre el formato AAB, consulte Android App Bundles.

En cualquiera de los casos, el paquete de la aplicación se genera a partir de una estructura de directorios específica que contiene las bibliotecas shared de tu proyecto y las dependencias de Qt que necesita tu aplicación. Además, se compila e incluye cualquier activo, recurso, archivo jar o código Java del proyecto.

Generación del paquete de aplicación

Se recomienda utilizar Qt Creator para desplegar aplicaciones Qt para Android. De lo contrario, se puede hacer lo mismo a través de la línea de comandos con la ayuda de CMake o qmake. Para obtener más información, consulte Creación de proyectos Qt para Android desde la línea de comandos.

El proceso de empaquetado y despliegue es manejado por CMake o qmake que, bajo el capó, utilizan la herramienta androiddeployqt para gestionar los detalles de la construcción y el despliegue de una aplicación Android. Qt Creator también utiliza la misma herramienta.

Extendiendo Qt con facilidades Android

Por defecto, Qt para Android hace la mayor parte del trabajo pesado para poner en marcha una aplicación Android, teniendo las APIs más útiles disponibles directamente desde Qt, o utilizando QJniObject para invocar APIs no fácilmente disponibles. Lo mismo es válido para CMake, que se encarga de los distintos casos de compilación y despliegue. Sin embargo, en algunos otros casos, puede ser necesario disponer de toda la potencia de las facilidades nativas de Android, como escribir código Java/kotlin o utilizar la gestión de recursos de Android. Qt lo permite permitiendo al usuario extender el conjunto de plantillas.

Las plantillas por defecto utilizadas por Qt se encuentran en la ruta de instalación de Qt para Android, por ejemplo, en ~/Qt/<version>/android_<abi>/src/android/templates para Unix. Para usar esas plantillas, es posible hacer que Qt Creator las copie a tu proyecto, ver Qt Creator: Android Deploy Configuration. O puedes copiarlas manualmente a la fuente de tu proyecto bajo un subdirectorio android. A continuación, asegúrese de definir la siguiente propiedad en su CMakeLists.txt:

set_property(TARGET target_name PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
          "${CMAKE_CURRENT_SOURCE_DIR}/android")

O para qmake en tu archivo pro:

android: ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android

Nota: Cuando se utiliza Qt Creator, los archivos bajo esta ruta son por defecto visibles bajo los archivos del proyecto si se utiliza CMake. Para lograr el mismo comportamiento con qmake, añadir esas rutas de archivos manualmente a su proyecto utilizando DISTFILES.

El proceso de construcción copia las plantillas al directorio de construcción <build_path>/android-build desde tu proyecto o desde las plantillas por defecto si el proyecto no estableció QT_ANDROID_PACKAGE_SOURCE_DIR. Después, el directorio <build_path>/android-build actúa como directorio de empaquetado. El paquete de la aplicación se crea a partir de ahí utilizando Gradle.

Ahora, repasemos las diferentes partes con las que el usuario puede trabajar después de extender las plantillas por defecto.

AndroidManifest.xml

El archivo AndroidManifest.xml proporciona meta-información detallada sobre tu aplicación. Esta información se utiliza para personalizar tu paquete de aplicaciones, y es utilizada por el dispositivo para decidir qué características habilitar, como la orientación por defecto de la aplicación. Además, es utilizado por Google Play Store para obtener información sobre el código de la versión, la compatibilidad con el dispositivo, el nombre del paquete y mucho más. El Manifiesto Android también se utiliza para definir Servicios Android y Actividades Android personalizadas.

Para obtener más información sobre el AndroidManifest.xml, consulte la documentación del archivo Android Manifest, y {Qt Creator: Configuración de despliegue de Android}{Edición de archivos de manifiesto}.

Archivos Gradle

Gradle se utiliza para construir paquetes Android. Qt incluye dos conjuntos de archivos relacionados con Gradle:

  • Gradle wrapper, que se utiliza para descargar una versión específica del propio Gradle, y los scripts de compilación que se utilizan para invocar la compilación de Gralde. Estos archivos vienen con Qt bajo por ejemplo ~/Qt/<version>/android_<abi>/src/3rdparty/gradle.

    Nota: Normalmente, se recomienda usar la misma versión de Gradle con la que viene Qt. Sin embargo, si deseas utilizar una versión diferente de Gradle, puedes modificar el wrapper de Gradle gradle-wrapper.properties y configurarlo con la versión de Gradle que desees utilizar.

  • El archivo de configuración de Gradle build.gradle, que está bajo las plantillas de Android. Este archivo es requerido por Gradle y se puede utilizar para personalizar la construcción. Se puede utilizar para establecer el objetivo de compilación o la API mínima o añadir dependencias de bibliotecas. También se puede utilizar para establecer el plugin de Gradle para Android, que es una dependencia de Gradle necesaria para construir aplicaciones Android. Un ejemplo de esto es:
    buildscript {
        ...
        dependencies {
            classpath 'com.android.tools.build:gradle:9.0.0'
        }
    }

    Para obtener más información, consulte Android: Build Configuration Files.

Código Java/Kotlin

Para incluir cualquier código Java/Kotlin para apuntar a algunas APIs que Qt no cubre o por alguna otra razón, coloca cualquier código bajo la ruta <QT_ANDROID_PACKAGE_SOURCE_DIR>/src/. Por ejemplo, puedes llamar a métodos Java desde código Qt. Para ver un ejemplo, consulta Qt for Android Notifier Example.

Recursos

Android permite la adición de archivos de recursos tales como iconos, imágenes, cadenas, colores, y así sucesivamente. Estos recursos pueden ser referenciados directamente desde el código Java/Kotlin o desde el archivo de manifiesto. Cualquiera de estos archivos puede ser añadido a tu proyecto en <QT_ANDROID_PACKAGE_SOURCE_DIR>/res/. Por ejemplo, los iconos de la aplicación pueden añadirse en res/drawable/icon.png.

Para más información, consulta Android: Visión general de los recursos de la aplicación.

Recursos internos de Qt

Por defecto, Qt empaqueta algunos recursos que son necesarios para que las aplicaciones se ejecuten correctamente. Por ejemplo, en Unix, estos recursos se encuentran en ~/Qt/<version>/android_<abi>/src/android/templates/res.

strings.xml

Este archivo se encuentra en res/values/strings.xml. Este archivo contiene cadenas que la biblioteca Qt utiliza para referenciar traducciones de mensajes para varios idiomas.

libs.xml

Este archivo se encuentra en res/values/libs.xml. Se utiliza únicamente para gestionar la información de despliegue de las librerías Qt, y no se recomienda modificarlo manualmente.

Activos Android

Para obtener más información sobre la gestión de activos de Android, consulte Adición de recursos.

Bibliotecas de Android

Para obtener más información sobre el uso de bibliotecas de terceros con su proyecto Qt, consulte Inclusión de una biblioteca en un proyecto 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.