Spec-Zone.ru › Qt

Инструмент androiddeployqt

Создание пакета приложения сложное, поэтому Qt предоставляет инструмент, который выполняет эту работу за вас. Шаги, описанные в Развертывание приложения на Android, обрабатываются инструментом androiddeployqt.

Предварительные условия перед запуском androiddeployqt

Перед ручным запуском инструмента, необходимо выполнить qmake или CMake в вашем проекте для генерации Makefiles и файла JSON (например, android-project-deployment-settings.json) содержащего важные настройки, используемые инструментом androiddeployqt.

Примечание: Не рекомендуется изменять файл androiddeployqt JSON.

Для подготовки сборки к androiddeployqt, рекомендуется собрать свой проект в отдельной директории. Выполните следующие команды:

mkdir build-project
cd build-project

За этим следуют:

Для qmake:

qmake ../project/project.pro
make -j$(nproc)
make -j$(nproc) apk_install_target

Для CMake:

cmake --build

Аргументы командной строки

Единственный обязательный аргумент командной строки при запуске инструмента — --output. Другие аргументы командной строки являются необязательными, но полезными. Вот краткий обзор. Более подробная информация доступна при передаче аргумента --help инструменту androiddeployqt.

Аргумент Краткое описание
--output <destination> Указывает место назначения конечного пакета. Установите его в $ANDROID_BUILD_DIR, то есть в директорию сборки, где установлены исполняемые файлы вашего приложения.
--input <file name> Это позволяет указать файл настроек сгенерированных JSON. androiddeployqt будет пытаться определить имя файла на основе текущей рабочей директории.
--aab Сгенерировать пакет Android Application Bundle вместо APK. Обратите внимание, что это делает некоторые другие аргументы, такие как --install, недействительными.
--deployment <mechanism> Укажите это, чтобы выбрать другой механизм развертывания, отличный от стандартного.
--install Укажите это, чтобы установить готовый пакет на целевое устройство или эмулятор. Обратите внимание, что если ранее установлена предыдущая версия пакета, она будет сначала удалена, удалив любые данные, которые она могла хранить локально.
--device <ID> Укажите идентификатор целевого устройства или эмулятора, как сообщается инструментом adb. Если идентификатор указан, он будет передан во все вызовы adb. Если он не указан, adb не запросит конкретное устройство или эмулятор, выбрав вместо этого значение по умолчанию.
--android-platform <platform> Платформа SDK, используемая для компиляции Java-кода приложения. По умолчанию используется самая последняя доступная платформа.
--release Укажите это, чтобы создать релизный пакет вместо отладочного. Без других аргументов релизные пакеты не подписаны и не могут быть установлены на любое устройство, прежде чем они будут подписаны с помощью закрытого ключа.
--sign <url> <alias> Подписать полученный пакет. Указание этого также подразумевает --release. Необходимо указать URL-адрес файла keystore и псевдоним ключа. Дополнительно можно задать следующие переменные среды, чтобы скрыть информацию о подписи QT_ANDROID_KEYSTORE_PATH, QT_ANDROID_KEYSTORE_ALIAS, QT_ANDROID_KEYSTORE_STORE_PASS, и QT_ANDROID_KEYSTORE_KEY_PASS. Кроме того, существует ряд опций, которые могут быть переданы инструменту jarsigner . Передайте --help в androiddeployqt, чтобы получить больше информации.
--jdk <path> Укажите путь к Java Development Kit. Это требуется только для подписи пакетов, так как используется только для поиска инструмента jarsigner. Если оно не указано, androiddeployqt попытается обнаружить jarsigner, используя переменную среды JAVA_HOME, или на PATH.
--verbose Укажите это, чтобы получить больше информации о том, что androiddeployqt делает.
--help Выводит справку по инструменту.

С проектом под названием project, для непосредственного построения пакета приложения с androiddeployqt без развертывания на устройстве, выполните следующие действия:

.androiddeployqt --input $BUILD_DIR/android-project-deployment-settings.json --output $ANDROID_BUILD_DIR

Для развертывания скомпилированного пакета на устройстве:

androiddeployqt --verbose --output $ANDROID_BUILD_DIR --no-build --input $BUILD_DIR/android-project-deployment-settings.json --gradle --reinstall --device <adb_device_id>

Обнаружение зависимостей

Qt поставляется с рядом плагинов, которые загружаются во время выполнения, когда они нужны. Они могут выполнять всё, от подключения к базам данных SQL до загрузки определенных форматов изображений. Обнаружение зависимостей плагинов невозможно, так как плагины загружаются во время выполнения, но androiddeployqt пытается угадать такие зависимости, основываясь на Qt-зависимостях вашего приложения. Если у плагина есть какие-либо Qt-зависимости, которые не являются также зависимостями вашего приложения, он по умолчанию не будет включён. Например, чтобы гарантировать включение плагина формата изображений SVG, вам нужно добавить модуль Qt SVG в свой проект, чтобы он стал зависимостью вашего приложения:

QT += svg

Если вы хотите узнать, почему определенный плагин не включен автоматически, вы можете запустить androiddeployqt с опцией --verbose , чтобы получить список отсутствующих зависимостей для каждого исключенного плагина. То же самое можно сделать в Qt Creator, установив флажок Подробный вывод в Проекты > Шаги сборки > Сборка Android APK > Дополнительные действия.

Также возможно вручную указать зависимости вашего приложения. Для получения дополнительной информации см. переменную qmake ANDROID_DEPLOYMENT_DEPENDENCIES.

Переменные qmake, специфичные для Android

Если у проекта нет особых требований, таких как сторонние библиотеки, то можно запустить androiddeployqt без модификаций и получить работающее приложение Qt для Android.

Существуют две важные переменные среды, используемые Qt:

  • ANDROID_SDK_ROOT: указывает путь к Android SDK, используемому для сборки приложения. Android SDK содержит build-tools, Android NDK и Android toolchains.
  • ANDROID_NDK_ROOT: указывает путь к Android NDK, используемому для сборки приложения. Не рекомендуется жёстко кодировать этот путь, так как различные версии Qt для Android могут зависеть от различных версий Android NDK.

Примечание: Qt Creator по умолчанию устанавливает эти переменные.

Существует набор qmake или CMake переменных, которые могут использоваться для настройки пакета. В какой-то момент разработки, скорее всего, потребуется изучить эти переменные, чтобы настроить ваше приложение.

Вот список некоторых переменных, которые особенно интересны при создании приложений для Android:

  • ANDROID_PACKAGE_SOURCE_DIR
  • ANDROID_VERSION_CODE
  • ANDROID_VERSION_NAME
  • ANDROID_EXTRA_LIBS
  • ANDROID_EXTRA_PLUGINS
  • ANDROID_ABIS
  • ANDROID_API_VERSION
  • ANDROID_DEPLOYMENT_DEPENDENCIES
  • ANDROID_MIN_SDK_VERSION
  • ANDROID_TARGET_SDK_VERSION
  • JAVA_HOME

Также следующие qmake переменные в основном полезны при написании модуля Qt, а не обычных приложений:

  • ANDROID_BUNDLED_JAR_DEPENDENCIES
  • ANDROID_LIB_DEPENDENCIES
  • ANDROID_PERMISSIONS
  • ANDROID_FEATURES

Примечание: Этот список переменных также может быть использован с CMake.

Развертывание в Qt Creator

Qt Creator по умолчанию запускает androiddeployqt и предоставляет простые и интуитивно понятные пользовательские интерфейсы для указания многих опций. Для получения дополнительной информации см. Qt Creator: Развертывание приложений на устройствах Android.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/android-deploy-qt-tool.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API