Разное

Настройка android qt: Настройка Qt Creator для разработки под андроид: быстрый старт под Windows

Содержание

Настройка Qt Creator для разработки под андроид: быстрый старт под Windows

Записки для себя, но вдруг кому будет полезно: есть многочисленные интернетные гайды, но они все — неизвестного времени, а многое — поменялось….

Загорелось мне тут сделать программу одну для телефона, чисто для себя. Ну, понятно, Qt+QML, потому что Qt я знаю, QML видел издалека, ничего сложного не запланировано. Как и всегда, главный вопрос «как начать» (т.е. настроить все, чтобы оно работало, компилировало, загружало в телефон/эмулятор), я на него потратил минимум полдня и пришел в результате к такому рецепту на 15 минут (ну может на час — на моем домашнем интернете все качалось стремительно, но не у всех оно будет так):

I. Установка Android Studio

Этот этап, совершенно точно, необязателен, но тогда вам придется качать все эти SDK/NDK/JRE вручную,  а Android Studio умеет делать все это сама.

  • Качаем Android Studio, запускаем инсталлятор, инсталлируем в C:\Android\Studio (вместо Program Files, удобнее все держать в одной куче).
  • Запускаем, выбираем «Import an Android code sample», выбираем любой пример (наверное, из Getting Started), я брал Media Effects
  • Menu — Tools — SDK Manager:
    • Меняем путь к SDK c %HOME%/AppData/Local… на C:\Android\SDK (поверьте, так будет лучше!)
    • Оно спросит скачать ли базовые штуки (Android Platform 28), соглашаемся, ждем пока скачает.
    • Закрываем SDK Manager, Menu — Build — Build Project
      • Оно начнет его билдить и в процессе будет спрашивать «не хватает детали, докачать»
      • На все такие вопросы (в виде гиперлинка ‘Download то-то’) отвечаем «да» путем нажатия на гиперлинк
      • При быстром интернете, минут через 5-10 у вас будет первое собраное приложение.
  • Когда первое приложение собралось (все детали докачаны): Menu — Run — Run application
    • Откроется  список устройств (подключенных и эмуляторов), он будет пуст скорее всего (и студия захочет всякого поскачивать)
    • Create New Device — Выбираем из списка какой-нибудь телефон — Next
    • На следующей странице — System Image — выбираем какую-нибудь версию андроида из предложенных — Download, когда скачалось — выбираем его же, еще пара кнопок — эмулятор
      Архитектура эмулятора — x86, не ARM. ARM-овский эмулятор чудовищно медленно работает.
    • Закрываем создатель устройств, выбираем созданное из списка, запускаемся на нем.
    • В первый раз оно загружается долго, ждем, ждем, ждем, на эмуляторе запустилось наше приложение, треть дела сделана.
  • Теперь нужно скачать NDK, он нужен Qt Creator.
    Menu — Tools — SDK Manager, закладка SDK Tools, ставим галочку на NDK:

    Жмем Apply и оно его качает.

  • На этой ноте (при повторном исполнении, все, со всеми скачиваниями, занимает минут 20) закрываем Android Studio (ну можно еще подключить живой телефон, разрешить на нем Debug Mode и собранное в процессе скачивания всего приложение — запустить там).
  • Идем в %HOME%/AppData/Local и стираем папку Android (туда студия качала начальные SDK, но мы поменяли папку с SDK на C:\Android\SDK и в AppData остались ошметки, они более не нужны).

II. Установка Qt

Qt я всегда ставил/собирал из исходников, но тут — не тот случай, потому что Qt нам нужно много и собирать упаришься. Берем инсталлятор (я взял  оффлайновый из, в данном случае, http://download.qt.io/official_releases/qt/5.12/5.12.2/), но онлайновый тоже подошел бы, качаем эти 3.7 гигабайта, запускаем, пропускаем страницу с Qt login, выбираем целевой каталог (умолчание — OK) и переходим к экрану выбора компонентов. Нужно отметить вот такие галочки:

Поясняю выбор:

  • MSVC 2017: на случай, если мы захотим поотлаживаться в MSVC (ниже объясню почему захотим).
    Предполагается, конечно, что MSVC 2017 у вас установлен (если нет — по идее, Community Edition вполне ОК, хотя я и не пробовал)
  • MinGW в списке сборок Qt и в списке Developer/Designer tools: на случай, если мы захотим отлаживать C++ в Qt Creator (из Qt Creator можно компилировать и MSVC, но нельзя отлаживаться)
  • Android x86: для запуска бинарников в эмуляторе. Потому что эмуляторы Android/x86 быстрые, а Android/ARM — медленные
  • Android ARMv7: для запуска бинарников на телефоне.
  • Для C++/Windows — лично мне достаточно 64 бит чтобы поиграться (а установленное таким образом Qt — с боевым Qt от сборки FRV/итп — никак не пересекается).

(поясню на всякий случай: Java-бинарники андроида, которые делает Android Studio — они, конечно, аппаратно-независимы. А вот C++ (то есть Qt) — собирается отдельно под каждую платформу).

Жмем Next, ставимся, в конце оно запустит Qt Creator.

Можно выбрать какой-то проект из C:\Qt\Qt5.12.2\Examples, выбрать для него виндовую платформу (MSVC или MinGW, по вкусу, убедиться что под винду у вас собирается и запускается все (если нет, то я ХЗ, обычно оно работает :).

Важно:

  • Текущий Android NDK — это clang toolchain
  • Текущий Qt (5.12.2 на момент написания этого текста) — в NDK ждет clang toolchain
  • Более старые Qt (я пробовал 5.6) — ожидают в NDK  gcc toolchain и все ломается.
  • Понятно что если вы все умеете (в Qt Creator, qmake и так далее) — вы даже и это почините, но лучше просто брать все свежее (т.е. одного примерно возраста)

III. Настройка Qt Creator для андроида

Это место, на котором я при старте потерял больше всего времени. JDK всякие качал и ставил, NDK распаковывал вручную и прочая, пока не пришел к такому вот рецепту.

Qt Creator — Tools — Options — Devices:

  • JDK location: вам достаточно того, что с собой принесла Android Studio.
    Более того, попытки поставить сравнительно свежий JDK и скормить его Qt Creator — не работают (JDK8 работает, более новые — хрен).
  • SDK location — понятно
  • NDK location — Android Studio скачала его для вас
  • Можно ткнуть в SDK Manager и скачать (или удалить) какую-то версию, на удивление это место работает.
  • Можно ткнуть в AVD Manager и сделать еще какой-нибудь эмулятор, но у Android Studio это место работает понятнее.
  • Собственно, все, все должно работать. Проверяем
    • Открываем какой-нибудь проект из C:\Qt\Qt5.12.2\Examples\Qt-5.12.2\quick\
    • Нам предложат все 4 варианта рантайм/архитектура, которые мы установили с Qt, соглашаемся, Configure Project
    • Идем в закладку Projects, выбираем Android for x86, ждем пока иконки Debug/Build/Run обретут цвет.
    • Нажимаем Run
    • Выбираем эмулятор из тех, что сконфигурировали андроид-студией на шаге I
    • Ждем примерно 30-50 секунд, пока проект скомпилируется (сборка/деплой apk из под Qt Creator не сильно стремительные)
    • И, да, оно запустится в эмуляторе. Реально всякий раз удивляюсь.
  • Важно: чтобы Qt Creator воспринимал эмулятор нормально, нужно на этом эмуляторе что-то разок запустить из Android Studio. Без этого «API Level: -1» и оно считается несовместимым.

IV Вместо заключения

Разрабатывать C++ + QML мне понравилось.

Я уверен, что есть всякие ограничения и недостатки, как и у любой мультиплатформенной конструкции, но опыт с Qt говорит мне, что самые тяжелые проблемы таки как-то решены 🙂 /впрочем, в QML мне сильно не хватает #ifdef /, просто я еще на них не натыкался, у меня и так все выходит /как-то/.

Есть огромный, просто гигантский (особенно на стадии обучения) плюс в том, что оно (Qt+QML) умеет работать Native на Windows:  edit — build — run для небольшого проекта занимает буквально секунду (1-3 если быть точным) на моем железе, тогда как  Android studio делает это секунд за 15 (попробовал) для Java-приложения, а изготовление Qt+QML  apk-файла занимает как бы не секунд 40 (и apk-шка большая, едет даже на эмулятор не мгновенно).

Поэтому minor edit — run — гораздо (собственно на 1-2 порядка) быстрее для native приложения, чем даже для Java+эмулятор, не говоря о Qt+QML+эмулятор (или native девайс). Понятно что мультитач в native-приложении толком не потестировать (пишу не пробовав, в принципе то у меня есть MS Surface с тач-экраном и надо будет проверить).

Кроме этого, еще замечания:

  • Редактировать QML гораздо удобнее в Qt Creator: он знает синтаксис и есть контекстная помощь по компонентам.
  • Редактировать C++ в Qt Creator мне люто не понравилось: все мигает и переливается всякими сообщениями/предупреждениями, а комплетер работает (как мне показалось) только для полностью синтаксически корректных описаний (т.е. если у меня описание класса развалено, то комплетер для членов класса работать не будет). Визуальная студия ну гораздо лучше (для меня)  как C++-редактор (ну и привычки у меня к ней больше, конечно).
  • Отладка C++ в Qt Creator  (для меня) гораздо хуже, чем в MSVC:
    • Гораздо дольше запуск, все загружаемые DLL как-то анализируются на лету и это занимает при запуске десятки секунд (запуск не под отладчиком — ок, все быстро)
    • Ну и сам отладчик (скажем, инспекция переменных) — по мне так сильно хуже.
    • Отладчик студии запускается быстро (хотя в MSVC 2013  — еще быстрее, чем в 2017) и меня полностью устраивает.
  • Отладка QML, соответственно, наоборот: я вообще не понял, есть ли она в MSVC (не разбирался), а в Qt Creator — в тех объемах что мне было надо — работает.

В результате я пишу QML-интерфейс и скелет C++-кода в Qt Creator, а когда гуй работает, закрываю креатор и иду писать мясо в визуальной студии. Так и живу.

P.S. Мой первый андроидный апп опубликую в github на днях 🙂

Установка Qt под Android

В статье рассказывается, как установить настроить Qt так, чтобы на нем можно было создавать приложения под Andorid.

Содержание

Обратите внимание, что в отличии от программирования под Android в том же Android Studio, где apk платформонезависимые, а зависят только от версии Android, то при программировании под Android в Qt вы создаете приложение, заточенные по конкретные архитектуры процессоров.

Вначале нужно установить Qt. Подробно об этом рассказывается в статье: Установка Qt.

Обратите внимание только на то, что скачивать версию надо под Android.

По статье можете протестировать создание простейшего приложения Qt:

Базовое приложение в Qt Widgets (Qt GuiApplication)

Обязательно потребуется установка компонентов под Java: JDK.

В статье Установка JDK в Windows подробно расписан процесс установки JDK.

Подробно можно узнать в другой моей статье: Установка Andoid Studio в Windows.

Это тоже нужно установить, чтобы можно было потом настроить Qt.

Идем на сайт: https://developer.android.com/ndk/downloads/index.html.

Там скачиваем под битность вашей ОС.

Распакуйте архив в папку C:\Android.

У вас появится папка, которую я обычно переименовываю в android-ndk.

Эту программу тоже нужно установить.

Идем на сайт http://ant.apache.org/bindownload.cgi и скачиваем архив.

Скаченный архив копируем в папку C:\Android и распакуем. Также я его переименовал в apache-ant.

Фактически мы всё скачали и установили из стороннего программного обеспечения, что нам нужно. Запускаем Qt Creator.

Запускаем настройки Qt.

И находим вкладку Devices, а там вкладку Android.

В разделе JDK Location выбираем папку, где установлено JDK библиотеки.

В разделе Android SDK Location выбираем папку, где установлено SDK библиотеки.

В разделе Android NDK Location выбираем папку, где установлено NDK библиотеки.

Нахождение файла ant.bat в Apache Ant у меня почему-то нашлось автоматически. Но если у вас не нашлось, то укажите аналогичным способом.

Нажмите кнопку Apply.

Настройки закончились. Но не закрывайте пока окно с ними.

Я бы рекомендовал запускать программы под Android на Android устройствах, но иногда либо их нет, либо нужно проверить работу на специфических устройствах. О виртуальных Android устройствах и пойдет речь дальше. Если вам это не нужно, то настройка программ для вас закончилась.

Если вы устанавливали Android Studio, то после нажатия на Apply (если не появилось, то перезапустите Qt Creator и опять зайдите в настройки), у вас с диспетчере виртуальных устройств может появится устройство Nexus.

Итак, выделите виртуальное устройство то, что по умолчанию (потом если нужно то создадите через кнопку Add… другие, если нужно) и нажмите Start....

Запускаться виртуальное устройство будет долго!

А пока можете закрыть настройки, нажав OK.

О! Виртуальное устройство запускается.

Виртуальное устройство запустилось.

Если всё прошло успешно, то виртуальное устройство можно закрыть.

Практика показала, что виртуальное устройство Nexus, поставляемое с Android Studio не совсем хорошо приспособлено для запуска приложений от Qt. Лично у меня удалось на нем запустить только один раз приложение и то странным образом. Обычно же приложение компилируется, виртуальное устройство запускается, но приложение на него не устанавливается и не запускается. С чем это связано, я не знаю. Поэтому создадим новое виртуальное устройство, на котором и будем запускать наши приложения.

Идем опять в настройки и запускаем менеджер виртуальных устройств:

В нем создаем новое виртуальное устройство:

Там задаем, например, вот такие параметры для виртуального устройства.

Обратите внимание на то, что у вас для соответствующей версии Android должен быть установлен соответствующий пакет для нужной архитектуры процессора. Например, если вы хотите запустить под ARM, для Android 5.0.1 должен стоять соответствующий пакет.

Нажимаем OK.

Устройство создалось.

Обратите внимание, что скорее всего в списке устройств в настройках Qt новое устройство не появится, так как не успевает обычно обновиться это окно. Но это не страшно. Главное, что оно потом будет появляться при выборе устройства для запуска приложения.

Вы настроили Qt для создания Android проектов.

В статье Создание простейшего приложение в Qt и запуск его под Android вы можете проверить работоспособность системы и создать простейшее приложение и запустить под Android.

Радость и грусть разработки на Qt под Android (и не только) / Хабр

На хабре то и дело мелькают статьи об успешном опыте использования Qt для разработки под Android, а также под iOS и WP. Статьи наполнены достаточно большим энтузиазмом — ведь это так здорово: пишешь и тестируешь UI на десктопе, а потом просто собираешь с помощью нехитрых команд под Android, iOS, WP, заливаешь в сторы и готово. В этой же статье я хочу поделиться опытом «собирания грабель» преимущественно при разработке под Android.

Qt я использую достаточно давно, начиная с версии 4.1. Не сказать, что я «профессионально» его использую, но опыт был разный — и работы с виджетами и эволюции до версии 5.6.

Некоторые примеры проектов:

  • Пульт управления караоке-центром (Android/iOS)
  • Русско-Татарский словарь с кастомной клавиатурой (Android/iOS/WP), тогда ещё даже API для iOS кастомных клавиатур не было
  • Cоциальная сеть с разными примбамбахами под Android (гео, блютуз, чаты, фотки, профили и т.д.)
  • Приложение для быстрого заказа цветов (Android/iOS/WP)

Кроме того, на Qt написано Android приложение 2gis, на котором вы и можете проверить большинство описанного здесь.

Заранее прошу меня поправить, если что-то из описанного здесь имеет ненайденные мною пути решения (буду благодарен, если вы их укажете). Всё нижесказанное относится по большей части к Android.

Проблема №1

Первое и самое главное на сегодняшний момент: если вам нужно много работать с текстом, вводимым пользователем — не выбирайте Qt/Qml!

Крайне не люблю восклицательные знаки, но тут этот знак на своём месте: вам будет крайне сложно реализовать привычное для пользователей целевой платформы работы с полями ввода, а именно:

  1. Выделение текста
  2. Copy & Paste

Суть проблемы: баг работы с элементом редактирования текста висит аж с 2014 года, отмечен как Important и зарегистрирован пользователем с Silver подпиской, но до сих пор не исправлен. В багтрекере описан обходной путь, но если вы хотите использовать не Quick.Controls а чистый Quick с TextEdit и TextInput — извините.

Возможно кто-то скажет, что я слишком многого хочу и TextEdit/TextInput это базовые компоненты, но, извините меня, отсутствие Copy & Paste в базовых компонентах и отсутствие его реализации в Controls не будут вам доставлять проблем до первого замечания Заказчика.

TextEdit не содержит сигналов работы с указателем, типичных для MouseArea, поэтому попытка реализовать показ контекстого меню через долгое нажатие (PressAndHold в терминах Qml) успехом не увенчается. Кроме того, попытка в лоб обернуть поле ввода в MouseArea подходит лишь для ограниченного числа сценариев, т.к. вам придётся долго и упорно реализовывать выставление курсора между буквами и словами.

Поэтому, остаётся либо лезть в исходники и кастомизировать поле ввода, либо смириться.

Проблема №2

Второе и самое любимое заказчиками приложений, содержащий социализацию: Emoji

Суть проблемы: отсутствует нативная обработка любимых всеми смайликов, что в полях ввода, что в тексте — развивайте фантазию и реализуйте сами.

Узнать, что такое на самом деле Emoji и какова нелёгкая судьба их реализации в различных ОС вам поможет статья в Википедии. По факту же, какие есть варианты:

  1. Использовать шрифт с поддержкой символов Emoji. Используйте FontForge для компиляции Roboto с Emoji!
  2. RichText с заменой символов Emoji на цветные png’шки
  3. Глубокая кастомизация поля ввода (можете посмотреть в исходниках телеграмма для десктопа)

Итого: либо оно выглядит некрасиво (вариант 1), либо глючит (вариант 2), либо требует отличных знаний внутренностей Qt (вариант 3 — а если они у вас есть, вам не стоит труда решить большинство проблем).

P.S. Забавная забавность — не выставляйте никаких inputMethodHints у поля ввода, иначе встроенная Android клавиатура с Emoji (iWinn IME) у вас просто не покажется.

Проблема №3

Третье и самое раздражающее: Мерцание и BlackScreen’ы — ваши лучшие друзья.

Это будет сопровождать вас при загрузке приложения, при попытке выставить windowSoftInputMode в AdjustResize, куски чёрного экрана будут тоже периодически появлятся. Поэтому тестируйте, тестируйте и ещё раз тестируйте на реальных девайсах.

Проблема №4

Четвёртое и самое трудноловимое: Шрифты

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

Выход здесь только один — брать исходники Qt и патчить под конкретный GPU.

Проблема №5

Пятое и самое спорное: продвинутые контролы Qml — Camera и иже с ними.

Суть проблемы: частые краши, нехватка функциональности и прочие несоответствия стандартного пользовательского опыта нативных приложений. Лечится это всё очень просто — не стесняйтесь добавлять нативные компоненты (Activity в случае Android) в своё приложение. Да, от этого его кроссплатформенность снизится, а количество кода увеличится, но оно того стоит.

Бонус №1

Первое и самое важное: реальная кроссплатформенность.

Суть: после того, как ребята из SQLite портировали своё детище под WP, а скромный автор сего произведения указал на это ребятам из Qt, в порт Qt для WP был добавлен LocalStorage. Это счастье для всех любителей Qml.

Вы реально можете создавать приложения из одних исходников, реально под кучу платформ, при этом кастомизировать их в нужных местах исходя из возможностей и необходимостей платформы. Декларативный UI и js затягивают настолько сильно и позволяют писать настолько лаконичный код, что возвращаться после него на многословную Java + xml, либо спорный Swift + Storyboard’ы нет никакого желания.

Любые анимации, поддержка кастомных шрифтов, svg — это ли не счастье для мобильного разработчика?

Бонус №2

Второе и самое любимое заказчиками: нестандартность.

Суть: фраза от заказчика, приводящая к желанию убивать — «Сделайте как на айфоне». Теперь это не проблема, везде будет выглядеть примерно одинаково. Да, это нарушение гайдлайнов, да, это нехорошо и никогда так не делайте, но заказчик хочет так и у вас три пути — убедить его, уступить ему или отказаться от него, выбирайте сами.

Кроме того, при достаточном желании можно подхачить исходники платформы, так, как нужно именно вам. Так, в нескольких приложениях мы просто насовсем отключали клавиатуру и писали свою на базе Qt Virtual Keyboard, тогда как встроенные приложения таких возможностей не имели.

Бонус №3

Третье и самое любимое мной: скорость разработки.

Суть: в любом состоянии вы можете спроектировать UI практически любой сложности (исключая особенности взаимодействия с ОС, такие как поля ввода, обработка устройства ввода и т.д.). Если вы сам себе заказчик — то перед вами все дороги открыты.

Резюме

Начиная новый проект стоит прежде всего правильно для себя оценить границы развития этого проекта. Если в нём мало работы с нативными возможностями платформы и много нестандарта — используйте Qt. Если же наоборот — подумайте, сможете ли вы его доработать так, как вам нужно.

Спасибо за внимание! Поделитесь своим опытом использования Qt в разработке мобильных приложений в комментариях.

Upd 31.03.2016 16:53

Спасибо пользователю zsilas за наводку на интересную библиотеку QtOffscreenViews от команды 2gis, которая решает проблемы с вводом текста и показом emoji в полях ввода.

Создание простейшего приложение в Qt и запуск его под Android

В статье говорится о том, как создать и запустить приложение в Qt под Android.

Содержание

Об этом вы можете узнать из статьи Установка Qt под Android.

Создайте новый проект.

Задайте папку, где будете хранить проект и имя самого проекта. Не допускайте в пути и имени русские буквы!

Выберите под какие архитектуры процессоров вы будете компилировать приложение.

Дальше всё по умолчанию:

Переходим на форму:

Перетаскиваем на форму кнопку и растягиваем ее.

Запускать на реальном устройстве проще, чем на виртуальном. Главное, чтобы вы включили отладку на телефоне, подключили его кабелем к компу, и чтобы на копме были драйвера на ваш телефон (на некоторые телефоны не нужны). Например, для Samsung устройств это делается через установку KIES. В общем, на тему подключения телефона аль планшета к компу для запуска Android приложений написано много статей.

У меня JIAYU G4 (для него дополнительные драйвера, например, не нужны). На разных устройствах разные могут стоят процессоры, и какую архитектуру выбрать не всегда понятно. Покажу, где это искать.

Я подключил телефон к компу. В Qt Creator выбираем первую попавшийся архитектуру.

И запускаем компиляцию приложения.

Появится окно выбора устройства для запуска приложения.

И там видим, что на моем телефоне запустить нельзя, так как на нем можно запускать приложения под архитектуру armeabi-v7a.

Значит, в настройках выбираем компиляцию под armeabi-v7a в режиме Release.

Запускаем.

И теперь наше устройство доступно для запуска приложения на телефоне:

Начнется компиляция apk файла, установка его на телефон и запуск приложения.

Процесс может быть не быстрым. Если вы увидели это:

то можете посмотреть, что на телефоне появилось. У меня вот это появилось.

Мы создали приложение и установили на телефоне! Обратите внимание, что наше приложение немного отличается от того, что мы создали в дизайнере форм по внешнему виду, и будет отличаться от того вида, которое мы увидим, если скомпилируем под Windows.

То есть, размеры кнопок и других элементов будут изменены. А чтобы и на компе и на телефоне приложение выглядели одинаково, нужно активно использовать разметку Layout, минимальные размеры компонентов и так далее. Но это уже из области верстки приложений.

Почему так сделано? Почему не компилируется так, чтобы приложение выглядело таким же как и на компе? Потому что Android устройства бывают разными, с разными разрешениями, пропорциями экрана. И жесткие размеры и положения элементов приведут к тому что на многих устройствах приложения не будут влазить в экран. В общем, фигня получится.

Теперь еще один момент. Лично я сохранил проект в папке D:\QtProjects:

И там появилась после компиляции папка с нашим сгенерированным приложением:

Зайдем в него и там в папку android-build, а там в папку bin:

И вот наш apk файл. Это и есть приложение под Android, которое вы можете распространять. К сожалению, минус Qt в том, что apk файл получается большим. У нас простое приложение с одной кнопкой весит 7Мб. Но это цена того, что мы создали приложение не в JAVA через Android Studio, например, на через Qt на С++.

Теперь запустим на виртуальном устройстве. Вот тут нас ждут танцы с бубном.

Щелкаем на кнопку для выбора системы под компиляцию.

Ждем, когда Qt всё настроит у себя внутри. Если ниже треугольник стал зеленым, то всё в порядке.

Нажимаем на него (на зеленый треугольник).

Если всё скомпилировалось удачно, то появится окно с выбором устройства для запуска приложения. Так как у меня еще и телефон подключен физически, то у меня виден телефон. У вас этого не будет (если только не подключите специально телефон аль планшет).

Выберете наше виртуальное устройство (оно должно быть в разделе Compatiable devises).

Вот тут могут начать капризы! Если что-то пойдет не так, в процессе компиляции, то надо закрыть виртуальное устройство, возможно и Qt, возможно перезагрузить комп и попробовать скомпилировать и запустить! Возможно надо будет удалить папку с скомпилированным приложением.

Внизу в Qt Creftor стали появляться данные о компиляции и запуске приложения на виртуальном устройстве.

Внизу справа можно посмотреть на процент компиляции. Процесс не быстрый! Может занять несколько минут!

Если всё пойдет хорошо, то у вас на виртуальном устройстве запустится приложение, и всё будет ok. То есть вы запустили приложением, оно работает, в папке с скопилированным приложением в папке android-build, а там в папке bin найдете apk файл.

Дальнеший же текст предназначет для тех, у кого пошло что-то не так.

Иногда бывает так, что вы запускаете компиляцию вашего приложения, но виртуальное устройство не видится среди доступных:

Теперь оно в разделе Uncompatiable devises. Если мы по нему дважды щелкнем, то Qt Creator выдаст ошибку «When executing step “Deploy to Android device”»

Вначале проверьте платформу процессора, под которую вы компилировали, и платформу на виртуальном устройстве. Если они совпадают, то может помочь следующее:

С этой напастью разобраться просто. Идем в папку, где у вас хранится проект.

И удаляем ту папку, которой соответствует папка с скомпилированым приложением под ту архитектуру у процессора, под которую мы компилировали.

И пробуем опять запустить.

Итак, вы создали и запустили свое первое Android приложение, созданное на Qt.

Отладка android приложений собраны в Qt Creator на реальных устройствах

Подготовка android устройства

Для того чтобы вы смогли производить отладку приложений на вашем Android устройстве вам необходимо включить режим отладки по USB. Эта возможность скрыта во всех версиях Android начиная с 4.2.

В зависимости от модификации Android OS процедура активации режима отладки может немного отличаться, но в целом последовательность действий примерно одинаковая.

Чистый андроид

  1. Чтобы стать разработчиком сначала зайдите в «Настройки» -> «О телефоне» и семь раз нажмите на пункте «Номер сборки»;
  2. Затем в главном меню настроек появится пункт «Для разработчиков»;
  3. Тут необходимо поставить галочку напротив раздела «Разрешить отладку по USB». Нажмите Ok в ответ на появившееся предупреждение;
  4. Теперь ваш телефон готов к работе.

MIUI

  1. Переходим в меню вашего девайся в раздел «Настройки»;
  2. Выбираем пункт «О телефоне»;
  3. Ищем строку «Версия MIUI» и жмем несколько раз по версии вашей прошивки, пока снизу не высветится уведомление «Поздравляем! Вы стали разработчиком!»;
  4. Возвращаемся назад в раздел «Настройки»;
  5. В «Настройках» ищем раздел «Расширенные настройки» и переходим в него;
  6. Ищем раздел «Для разработчиков» и переходим в него;
  7. Ищем в разделе «Для разработчиков» пункты «Отладка по USB» и активируем;
  8. После чего на экране смартфона появится запрос «Разрешить отладку по USB?», нажимаем «Да».

Установка Google USB Driver

Скачать Google USB Driver можно несколькими способами (нужно только для Windows):

  • Через SDK Manager Android Studio (вкладка SDK Tools компонент Google USB Driver). Скачанный драйвер будет лежать в каталоге [путь к корневой папке sdk]/extras/google/usb_driver;
  • Через консольную утилиту sdkmanager;
  • Как отдельный компонент с официального сайта (прямая ссылка).

Подключите телефон к компьютеру с помощью USB кабеля.

В некоторых случаях телефон сам подберёт ADB драйвер, если этого не произошло, откройте Диспетчер устройств и найдите в списке Другие устройства пункт ABD Interface с символом восклицательного знака. Щелкните ПКМ и выберите Обновить драйверы…

Рис. 1 Диспетчер устройств

В открывшемся окне Мастера обновления драйверов выберите Выполнить поиск на этом компьютере.

Щелкните Выбрать драйвер из списка уже установленных драйверов.

В открывшемся окне из списка выберите Показать все устройства и нажмите Далее.

Рис. 2 Тип устройства

Нажмите кнопку Установить с диска.

В открывшемся окне нажмите кнопку Обзор и укажите путь к .inf файлу расположенному в корневой папке Google Usb Driver (зависит от того куда вы его скачали) и нажмите Ок.

Рис. 3 Путь к Google USB Driver

Из списка выберите Android ADB Interface и нажимайте Далее.

Появится окно с предупреждением. Согласитесь и продолжите установку.

Рис. 4 Предупреждение

В результате в списке устройств должно получиться что-то вроде этого:

Рис. 5 Диспетчер устройств после установки

Настраиваем проект

Все дальнейшие действия предполагают, что вы уже настроили Qt Creator для сборки приложений под android ОС.

Проверять корректность настроек будем на стандартном примере Qt SCXML Calculator QML Example. Выберите его из списка и перейдите к настройкам проекта. Здесь необходимо выбрать комплект сборки под android.

В разделе Основное нужно уменьшить путь к каталогу сборки и проверить, чтобы он не содержал русских символов и пробелов. По умолчанию название каталога сборки очень большое, что может привести к тому, что Qt откажется собирать приложение.

Рис. 6 Каталог сборки

Ниже, в разделе Сборка, этапы, выберите ABI armeabi-v7a. В зависимости от устройства или эмулятора на котором вы будете проводить отладку, убедитесь, что выбран соответствующий ABI (для реальных, устройств чаще всего — armeabi-v7a для эмуляторов -x86).

Рис. 7 Выбор ABI

В разделе Сборка Android SDK выберите из списка установленных SDK подходящий под устройство на котором вы планируете проводить отладку. Подходит любой SDK выше или того же уровня, что и используемый на целевом устройстве.

Рис. 8 Выбор сборочный SDK

Внимание! У разных версий Qt разные ограничения на уровни поддерживаемых SDK. Эту информацию можно узнать на официальном сайте разработчиков. Qt 5.14 поддерживает SDK уровня 21 и выше. Это означает, что Qt 5.14 не позволит собрать приложение для устройств поддерживающих только API ниже 21 версии. В реальности, для Qt 5.14, рекомендуется выбирать SDK начиная с версии 24, т.к. несмотря на утверждение разработчиков о поддержке начиная с 21 версии, в процессе сборки, довольно часто, возникают ошибки.

Оставшаяся часть этого пункта не обязательна для выполнения, но все же рекомендуется с ней ознакомиться.

В этом же разделе (Сборка Android SDK) в блоке Android нажмите кнопку Создать Шаблоны. Это позволит вам создать произвольно настраиваемый файл AndroidManifest.xml (и другие относящиеся к сборке), т.к. AndroidManifest.xml генерируемы Qt по умолчанию каждый раз пересоздаётся и если его отредактировать это не окажет влияния на проект. В открывшемся окне просто нажмите завершить.
Если вы запускали сборку проекта до того как выполнили вышеуказанные действия, Qt будет спрашивать разрешения перезаписать уже существующие файлы. Просто соглашайтесь.

Рис. 9 Создание шаблона

После этого перед вами откроется содержимое AndroidManifest.xml в виде формы с полями. Перейти к текстовому варианту можно при помощи кнопки Исходник XML вверху окна. Здесь, одним из важных пунктов, для нас является Минимальный требуемый SDK. Убедитесь, что уровень API установленный в этом поле не выше уровня API вашего эмулятора/устройства, в противном случае устройство может отказаться запускать/устанавливать приложение.

Рис. 10 AndroidManifest.xml

Сборка и отладка

Внимание! Перед сборкой/запуском/отладкой каждого нового android-приложения рекомендуется включить VPN, т.к. Qt Creator и система автоматической сборки Gradle могут попробовать докачать недостающие компоненты и зависимости, в том числе, и с подсанкционных гугловских серверов. В случае неудачи сборка завершится с ошибкой. Скаченные зависимости остаются в системе и не требуют повторного скачивания.

Прежде чем начинать отладку убедитесь, что ваше устройство подключено к компьютеру с помощью USB-кабеля.

Перейдите в Qt Creator и нажмите кнопку запуска (зелёный треугольник). В результате откроется окно со списком всех доступных устройств и эмуляторов. Выберите нужный и нажмите OK.

Рис. 11 Выбор устройства

После завершения сборки приложение попробует установиться на ваше устройство, необходимо дать своё разрешение.

Рис. 12 Установка приложения

В дальнейшем можно будет запускать это приложение из общего списка установленных, даже без Qt Creator.

Рис. 13 Запущенное приложение

Все сообщения посылаемые приложением будут видны в Qt Creator на вкладке Вывод приложения.

Рис. 14 Вывод отладочной информации

Если захотите, можете удалить приложение с устройства также как и любое другое, но во время отладки нет необходимости удалять его каждый раз перед запуском сборки.

Что нового в Qt для Android?

Qt 5.15 LTS и Qt для Android

Поскольку многие разработчики используют Qt для Android, компания Qt хочет улучшить опыт разработчиков. В следующем выпуске Qt 5.15.0 разработчики Qt обновили документацию для Android. Обновлённая документация содержит много нового контента о том, как использовать Qt для Android, чтобы максимально реализовать его потенциал. Более подробно объясняется, как расширить Qt для поддержки более продвинутых функций и улучшения интеграции с API-интерфейсами Android.

Основные темы, которые были улучшены в документации:

• Расширение приложений Qt для использования пользовательских классов или asset’ов Java и структуры упаковки.

• Управление версиями зависимостей между Android Native Development Kit (NDK) и Qt.

• Как работать с сервисами Android множеством разных способов.

• Как создать и использовать OpenSSL с Android. Зависимости между репозиторием OpenSSL поддерживают все версии Qt, как с QMake, так и с CMake.

В этом же контексте было исправлено множество примеров Qt, у которых были некоторые проблемы, такие как макет, масштабирование или разрешения. Qt 5.15.0 Qt Android Extras поставляется с новым примером кода Qt Java Native Interface Messenger (Qt JNI Messenger). В примере демонстрируется одна из самых важных тем при использовании Qt для Android, а именно связь JNI. Она объясняет рабочий процесс вызова методов и обмена данными между Java и Qt. Пример служит отправной точкой для соединения Qt и Android в обоих направлениях.

Обеспечивая правильную интеграцию с Android, диалоговое окно собственных файлов Android теперь можно использовать по умолчанию, открывая файлы и сохраняя операции. Нативный файловый диалог также использует файловую схему Android (Android’s ‘content’ file scheme) для контента файлов и проводит дополнительные проверки исключений, которые в прошлом вызывали некоторые случайные сбои. AndroidManifest.xml больше не устанавливает значения minSdkVersion и targetSdkVersion. Вместо этого вы можете установить их с помощью файла

build.gradle

. Android Studio выдаст предупреждение о настройке версий SDK в файле манифеста.

Qt Creator 4.12

Последний выпуск Qt Creator принес существенные улучшения для разработки под Android. Qt Creator теперь может автоматически устанавливать Android SDK, который является основным блоком для сборки и запуска приложений Qt для Android. Он предложит вам установить необходимые пакеты для разработки. Более того, использование OpenSSL в ваших приложениях теперь стало более простым с Qt Creator, что позволяет вам устанавливать локальный путь к библиотеке и использовать его с любым проектом из настроек комплекта.

Одной из существенных особенностей поддержки Qt для Android было отсутствие управления версиями Qt и NDK. В прошлом у Qt Creator мог быть только один действительный NDK, что в данный момент может беспокоить при работе с несколькими версиями и проектами Qt. Версии Qt для Android опирались на разные версии NDK, и разработчик должен был выбрать и переключиться на правильную версию вручную. Вот почему разработчики Qt представили способ управления несколькими версиями Qt и связывания каждой из них с соответствующей версией NDK. Qt Creator отслеживает это, используя общий файл конфигурации. Кроме того, по желанию можно использовать собственные пути NDK.

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

AVD Manager

, который получил некоторую гибкость при создании AVD, а также выбор значков

редактора манифеста (Manifest Editor)

.

Взгляд в будущее

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

Урок 020. Старт работы с Android Manifest в Qt Creator

Когда приходит время вести разработку под Android на Qt, то Мы рано или поздно приходим к необходимости работать с файлом

AndroidManifest.xml

. В данном файле Мы имеем возможность указать определённые принципиальные настройки поведения для нашего приложения, например ориентацию экрана, или основную тему приложения.

Но по умолчанию Android Manifest в Qt Creator не создаётся. Чтобы начать с ним работать, необходимо будет его создать в параметрах сборки проекта.

Пошаговая работа с Android Manifest

Первый шаг

Для этого необходимо зайти во вкладку

Проекты

и в ней найти необходимый нам комплект сборки. Выбрать пункт

Сборка

и в нём найти пункт

Собрать Android APK

. Развернём этот пункт кликнув на

«Подробнее»

.

Здесь Вы сможете выбрать целевой уровень

SDK

и настроить

параметры сборки APK.

Второй шаг

Но чтобы создать файл

AndroidManifest.xml

, Вам понадобится кликнуть по кнопке

«Создать шаблоны»

. И после этого выбрать папку, где будет создан

Android Manifest

.

Третий шаг

В структуре проекта Вы увидите файл

AndroidManifest.xml

. А справа от структуры будет открыта настройка данного файла. Здесь Вы сможете задать минимальный требуемый SDK устройства, на которое будет производиться установка приложения, а также задать значок приложения и включить требуемые для приложения разрешения. Например, вызовы, доступ в интернет, работа с

Wi-Fi

и т.д.

Четвёртый шаг

После того, как Вы настроите основные параметры приложения, предлагаю взглянуть на сам xml код файла, который сгенерировал

QtCreator

. Это код будет аналогичен тому коду, который Вы увидите в AndroidManifst.xml при разработке приложения под

Android

на

Java

. Поэтому настройка данного файла будет аналогична разработке под Java. И, например, настройка фикисрованной ориентации экрана будет выглядеть следующим образом:

<activity 
...
android:screenOrientation="landscape" >
...
</activity>

Ну а полный код получившегося Android Manifest у меня выглядел следующим образом.

<?xml version="1.0"?>
<manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
    <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --">
        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
            <meta-data android:name="android.app.repository" android:value="default"/>
            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
            <!-- Deploy Qt libs as part of package -->
            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
            <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
            <!-- Run with local libs -->
            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
            <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
            <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
            <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
            <!--  Messages maps -->
            <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
            <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
            <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
            <!--  Messages maps -->

            <!-- Splash screen -->
            <!--
            <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
            -->
            <!-- Splash screen -->

            <!-- Background running -->
            <!-- Warning: changing this value to true may cause unexpected crashes if the
                          application still try to draw after
                          "applicationStateChanged(Qt::ApplicationSuspended)"
                          signal is sent! -->
            <meta-data android:name="android.app.background_running" android:value="false"/>
            <!-- Background running -->
        </activity>
    </application>
    <uses-sdk android:targetSdkVersion="14"/>
    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>

    <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
         Remove the comment if you do not require these default permissions. -->
    <!-- %%INSERT_PERMISSIONS -->

    <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
         Remove the comment if you do not require these default features. -->
    <!-- %%INSERT_FEATURES -->

</manifest>

Заключение

Работа с

AndroidManifest.xml

под Qt имеет свою специфику, но при этом всё-таки не так сильно отличается от того, как если бы Мы вели разработку на

Java

.

Также можете глянуть профайл проекта. В нём Вы увидите, как подключён к проекту Ваш Android Manifest.

Начало работы с Qt для Android

Установка необходимых компонентов

Чтобы использовать Qt для Android, вам необходимо следующее:

  • Java SE Development Kit (JDK) или OpenJDK (в Linux) версии с 6 по 8. Версии выше 8 могут вызывать проблемы с инструментами командной строки Android SDK.
  • Gradle для создания пакетов приложений (APK) и пакетов приложений (AAB) для устройств Android. Gradle поставляется с Qt 5.9 и новее. Поскольку скрипты Gradle не поставляются с инструментами Android SDK начиная с версии 26.0.0, они поставляются с Qt 5.9 и 5.6.3.

    Примечание. Использование Ant для создания APK-файлов больше не поддерживается.

  • Инструменты Android SDK для установки следующих пакетов, необходимых для компиляции приложений Qt для Android:
    • Инструменты платформы
    • Инструменты сборки
    • Как минимум одна платформа SDK
    • Android NDK, содержащий инструментальные средства и отладчики для Android.

    Примечание: Qt Creator 4.12 или новее может автоматически устанавливать SDK Tools, NDK и основные пакеты.Для получения дополнительной информации см. Qt Creator: Указание настроек устройства Android.

    Примечание: Если ваша версия Qt более ранняя, чем v5.9, используйте пакет инструментов SDK v25.2.5 или ранее.

  • Android NDK можно установить с помощью инструмента sdkmanager . Кроме того, вы можете загрузить его и распаковать вручную по выбранному вами пути. Различные версии Qt зависят от разных версий NDK, как указано ниже:
    • Qt 5.14.0 или новее, Qt 5.13.2 или новее и Qt 5.12.6 или новее
    • Qt от 5.12.0 до 5.12.5 и Qt от 5.13.0 до 5.13.1
    • Qt 5.11 и ниже

После установки инструментов SDK обновите Android SDK, а затем установите необходимые пакеты с помощью Android Studio, пользовательского интерфейса Qt Creator SDK Manager или инструмента командной строки sdkmanager.

Примечание: Не забудьте распаковать Android SDK и NDK в место для записи, к которому Qt Creator сможет получить доступ позже. В противном случае Qt Creator не сможет использовать sdkmanager или найти все компоненты, даже если они были установлены вручную.

Обновление Android SDK

Используйте инструмент командной строки sdkmanager для обновления списка пакетов, а затем установите необходимые пакеты:

 cd  / tools / bin /
./sdkmanager --update
./sdkmanager --install "platform-tools" "платформы; android-29" "build-tools; 29.0.2" "ndk-bundle" 

Чтобы использовать эмулятор Android, установите его, введя:

 ./sdkmanager - установить патчер "эмулятор"; v4 "

Конфигурация для конкретного хоста

Окна

Драйвер USB по умолчанию в Windows не позволяет отладку с помощью инструмента Android Debug Bridge (ADB).Необходимо установить дополнительный драйвер USB, входящий в пакет extras Android SDK. Для его установки запустите следующее:

 sdkmanager.bat --install "extras; google; usb_driver" 

После завершения установки пакета установите драйвер из / extras / google / usb_driver . Попробуйте запустить несколько базовых команд adb и проверьте, реагирует ли на них ваше устройство Android.

Linux 64-разрядная

Если вы разрабатываете на 64-битной машине Linux, вы должны установить следующие зависимости, чтобы запускать 32-битные исполняемые файлы, такие как adb , что позволяет Qt Creator находить устройства для развертывания:

 sudo apt-get установить libstdc ++ 6: i386 libgcc1: i386 zlib1g: i386 libncurses5: i386 

Для запуска эмулятора Android также необходимы следующие зависимости:

 sudo apt-get install libsdl1.2debian: i386 

Qt Creator IDE

Qt Creator IDE может использоваться для разработки приложений Qt для Android. Для получения дополнительной информации см. Qt Creator: Подключение устройств Android.

Тестирование вашей установки

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

Чтобы разработать простое приложение с нуля, см. Qt Creator: Создание мобильного приложения.

.

Подключение устройств Android | Qt Creator Руководство

Вы можете подключать устройства Android к компьютеру разработки с помощью USB-кабелей для создания, запуска, отладки и анализа приложений из Qt Creator. Поддерживаются устройства с версией Android 4.1 (уровень API 16) или новее.

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

Начиная с Qt 5.14.0, пакет Qt для Android содержит все архитектуры (ABI), установленные как одну.

Примечание: Вы можете самостоятельно собрать 64-битную версию Qt для Android. Однако для такой версии Qt минимально необходимая версия Android на устройствах — 5.0 (уровень API 21). Для получения дополнительной информации см. Qt для Android.

Инструмент командной строки Android Debug Bridge (adb) интегрирован в Qt Creator, чтобы вы могли развертывать приложения на подключенных устройствах Android, запускать их и читать их журналы.Он включает в себя клиент и сервер, работающие на хосте разработки, и демон, работающий на эмуляторе или устройстве.

Требования

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

Указание настроек устройства Android

Qt Creator предлагает автоматическую установку всех необходимых пакетов и инструментов, а также настройку среды разработки путем создания отладчиков, цепочек инструментов и наборов.Вы можете использовать Qt Creator для:

  • Загрузите и извлеките инструменты командной строки Android SDK.
  • Установите или обновите основные пакеты, такие как NDK, инструменты сборки и инструменты платформы.

Чтобы настроить среду разработки для Android:

  1. Выберите Инструменты > Параметры > Устройства > Android .

  2. В поле JDK location укажите путь к JDK.Qt Creator проверяет установку JDK и сообщает об ошибках.

    По умолчанию Qt Creator пытается найти поддерживаемую установку AdoptOpenJDK или OpenJDK. Если ничего не найдено, необходимо указать путь вручную. Если у вас не установлен поддерживаемый JDK, выберите, чтобы открыть веб-страницу загрузки JDK в браузере по умолчанию.

    Примечание: Мы рекомендуем использовать 64-битный JDK, поскольку 32-битный может вызвать проблемы с cmdline-tools , а некоторые пакеты могут отсутствовать в списке.

  3. В поле Android SDK location укажите путь к папке, в которую вы хотите установить инструменты командной строки Android SDK.
  4. Выберите Set Up SDK для автоматической загрузки и извлечения инструментов командной строки Android SDK по выбранному пути.

    SDK Manager проверяет, установлена ​​ли цепочка инструментов. Если пакеты отсутствуют или необходимы обновления, диспетчер SDK предлагает добавить или удалить эти пакеты. Прежде чем действовать, он предлагает вам принять изменения, которые он собирается внести. Кроме того, при необходимости вам будет предложено принять лицензии Google.

  5. Установленные версии NDK перечислены под путем к SDK.Заблокированные элементы были установлены с помощью диспетчера SDK и могут быть изменены только на вкладке SDK Manager . Дополнительные сведения см. В разделе «Управление пакетами Android NDK».
  6. В группе Android OpenSSL укажите путь к предварительно созданным библиотекам OpenSSL.

    Для приложений Qt, которым требуется поддержка OpenSSL, Qt Creator позволяет быстро добавить поддержку Android OpenSSL в ваш проект. Для получения дополнительной информации см. Добавление внешних библиотек.

  7. Выберите, чтобы загрузить репозиторий OpenSSL по выбранному пути.Если автоматическая загрузка не удалась, откроется веб-страница загрузки для ручной загрузки.
  8. Установите флажок Автоматически создавать наборы для цепочек инструментов Android , чтобы позволить Qt Creator создавать наборы для вас. Qt Creator отображает предупреждение, если не может найти подходящую версию Qt.

Ручная настройка

Примечание. Мы рекомендуем использовать последнюю версию средств командной строки Android SDK. Использование Android SDK Tools версии 25.2.5 или более ранней не поддерживается, поскольку они не могут быть полностью интегрированы с Qt Creator.

Однако, если автоматическая установка не соответствует вашим потребностям, вы можете загрузить и установить инструменты командной строки Android SDK, а затем установить или обновить NDK, инструменты и пакеты, необходимые для разработки. Для получения дополнительной информации см. Начало работы с Qt для Android.

Просмотр настроек Android Tool Chain

URL-адрес загрузки инструментов командной строки Android SDK, список основных пакетов и соответствующий NDK для каждой версии Qt определены в файле конфигурации JSON.Файл находится в папке ресурсов пользователя Qt Creator:

 # Linux и macOS
~ / .config / QtProject / qtcreator / android / sdk_definitions.json

# Windows
C: \ Users \ Имя пользователя \ AppData \ Local \ QtProject \ qtcreator \ android \ sdk_definitions.json 

Например, файл конфигурации SDK определяет версию NDK 19.2.5345600, которая будет использоваться для версий Qt 5.12.0–5.12.5 и Qt 5.13.0–5.13.1:

 "specific_qt_versions": [
    {
        "версии": ["5.12. [0-5]", "5.13. [0-1]"],
        "sdk_essential_packages": ["инструменты сборки; 28.0,2 "," ndk; 19.2.5345600 "],
        "ndk_path": "ndk / 19.2.5345600"
    }
] 

Вы можете просмотреть последнюю версию файла конфигурации, которая соответствует последним изменениям в SDK Android и NDK, sdk_definitions.json, в Git.

Управление пакетами Android NDK

Чтобы просмотреть установленные версии Android NDK, выберите Инструменты > Параметры > Устройства > Android .

Заблокированные версии были установлены с помощью диспетчера SDK, и их можно изменить только на вкладке диспетчера SDK.Дополнительные сведения см. В разделе «Управление пакетами Android SDK».

Чтобы загрузить NDK вручную, выберите.

Чтобы добавить пользовательские пути к NDK вручную в глобальный список NDK, выберите Добавить . Это создает настраиваемые цепочки инструментов и отладчики, связанные с этим NDK. Однако вам придется вручную создать комплект, использующий настраиваемый NDK. Для получения дополнительной информации см. Добавление комплектов.

Управление пакетами Android SDK

Начиная с версии 25.3.0 Android SDK Tools, для управления пакетами SDK в Android предоставляется только инструмент командной строки sdkmanager.Чтобы упростить управление SDK, Qt Creator предоставляет диспетчер SDK для установки, обновления и удаления пакетов SDK. Вы по-прежнему можете использовать sdkmanager для расширенного управления SDK.

Чтобы просмотреть установленные пакеты Android SDK, выберите Tools > Options > Devices > Android > SDK Manager .

Чтобы отфильтровать пакеты, выберите Доступно , Установлено или Все в Показать пакеты .

Чтобы обновить установленные пакеты Android SDK, выберите Обновить установленный . Выберите пакеты для обновления, а затем выберите Применить .

Чтобы указать расширенные настройки sdkmanager, выберите Дополнительные параметры и введите аргументы в поле SDK Manager arguments . Доступные аргументы перечислены и описаны в Доступные аргументы .

Управление виртуальными устройствами Android (AVD)

Список AVD отображается в разделе Инструменты > Параметры > Устройства > Android > AVD Manager .Это работает, только если местоположение Android SDK установлено правильно в Android Settings .

Значение Размер раздела системы / данных используется для установки размера системного раздела эмулятора при выполнении с Start .

Создание нового AVD

Для создания новых виртуальных устройств:

  1. Выберите Инструменты > Параметры > Устройства > Android .
  2. На вкладке SDK Manager выберите Установить для версии Android, а затем выберите Применить , чтобы установить образ системы.Как вариант, вы можете установить образ системы из Android Studio.
  3. На вкладке AVD Manager выберите Добавить , чтобы открыть диалоговое окно Create New AVD .

  4. Задайте имя, тип, оболочку, архитектуру, уровень API и размер SD-карты устройства.
  5. Выберите OK , чтобы создать AVD.

Для получения дополнительных параметров для создания нового AVD используйте инструмент командной строки avdmanager или собственный пользовательский интерфейс AVD Manager для Android Studio.

Выбор устройств Android

При развертывании приложения на устройстве Android с версией Android 4.2 (API 16) или более поздней открывается диалоговое окно «Выбор устройства Android ». В нем перечислены устройства, подключенные к компьютеру разработчика, а также AVD и их статус. Вы можете выбрать устройства или AVD из списка Compatible Devices для развертывания.

Если Qt Creator определяет, что устройство не готово к развертыванию, он помещает устройство в список Несовместимые устройства с информацией о проблеме.Например, вам может потребоваться авторизовать соединение на устройстве. После авторизации подключения на устройстве выберите Обновить список устройств . Устройство перемещается в список Compatible Devices , и вы можете выбрать его для развертывания.

Другие причины для отображения устройства в Несовместимые устройства заключаются в том, что версия Android на устройстве слишком старая или цепочка инструментов, используемая для сборки, не соответствует архитектуре Android на устройстве (например, вы не можете развернуть сборку ARM на устройстве x86).

Чтобы создать новый AVD, выберите Create Android Virtual Device .

Чтобы установить устройство в качестве устройства по умолчанию для конкретной архитектуры Android для текущего проекта, установите флажок Всегда использовать это устройство для архитектуры . Диалоговое окно Select Android Devices не появится, пока вы не переключитесь на другой проект или не перезапустите Qt Creator.

Использование эмулятора Android

Чтобы запустить приложение в эмуляторе Android, у вас должно быть виртуальное устройство Android (AVD).Для получения дополнительной информации о создании нового, см. Создание нового AVD. Если вы запускаете приложение без устройства, подключенного к ПК для разработки, и без указанного AVD, Qt Creator попросит вас добавить AVD.

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

 cd  / эмулятор
./emulator -avd  

Дополнительные сведения см. В разделе Запуск эмулятора из командной строки.

Отладка на устройствах Android

Отладка включена по-разному на разных устройствах Android. Найдите USB Debugging в Developer Options . На некоторых устройствах Developer Options скрыт и становится видимым, только когда вы несколько раз коснетесь поля Build number в Settings > About . Дополнительные сведения см. В разделе Настройка параметров разработчика на устройстве.

Выберите конфигурацию сборки отладки, чтобы создать приложение для отладки.

Примечание. Qt Creator не может отлаживать приложения на устройствах Android, если работает Android Studio. Если на панели Output отображается следующее сообщение, закройте Android Studio и повторите попытку:

 Игнорирование приема и удаления второго отладчика. 

.

Qt для Android — Сборка из исходных кодов

Qt для Android имеет некоторые требования, которые рекомендуется знать перед тем, как изучать это руководство. Сначала выполните задачи из раздела «Начало работы с Qt для Android».

Вы можете скачать исходники Qt 5 со страницы Загрузки.

Создание на Linux

Подготовьте среду сборки

Сначала установите Android SDK одним из двух способов:

Использование диспетчера пакетов

Для любого Linux на базе Debian используйте следующую команду:

 sudo apt install build-essential android-sdk openjdk-11-jdk 

Рекомендуется установить Android NDK с помощью sdkmanager, используя следующие команды:

 sdkmanager --verbose --licenses
sdkmanager --update
платформы sdkmanager; инструменты сборки android-28 "ndk-bundle" "; 28.0,3 "платформа-инструмент" 

Примечание: Если вы используете старые пакеты SDK Tools «tools», вам понадобится OpenJDK 1.8. Также рекомендуется установить последний пакет SDK Tools «cmdline-tools» и перейти на него.

Использование ручной установки

Вы можете использовать Android Studio для загрузки и установки пакетов Android SDK, необходимых для разработки приложений для Android. Для получения дополнительной информации см. Документацию Android Studio.

Установка файла лицензии

Если вы используете Qt с коммерческой лицензией, инструменты Qt ищут локальный файл лицензии.Если вы используете двоичный установщик или коммерческий Qt Creator, ваши лицензии автоматически выбираются и сохраняются в вашем локальном профиле пользователя (файл $ XDG_DATA_HOME / Qt / qtlicenses.ini ).

Если вы не используете двоичный установщик или Qt Creator, вы можете загрузить соответствующий файл лицензии с веб-портала вашей учетной записи Qt и сохранить его в своем профиле пользователя как $ HOME / .qt-license . Если вы предпочитаете другое местоположение или другое имя файла, вам необходимо установить для переменной среды QT_LICENSE_FILE соответствующий путь к файлу.

Распаковка архива

Распакуйте архив, если вы еще этого не сделали. Например, если у вас есть пакет qt-везде-opensource-src-% VERSION% .tar.gz , введите в командной строке следующие команды:

 cd / tmp
gunzip qt-везде-opensource-src-% VERSION% .tar.gz # распаковать архив
tar xvf qt-везде-opensource-src-% VERSION% .tar # распаковать 

Это создает каталог / tmp / qt-везде-opensource-src-% VERSION% , содержащий файлы из архива.Мы поддерживаем только GNU-версию утилиты архивирования tar. Обратите внимание, что в некоторых системах он называется gtar.

Настройка и сборка

Задайте следующие переменные среды и добавьте их в свой PATH ; желательно в конце ~ / .profile :

 экспорт JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64
экспорт PATH = $ PATH: $ JAVA_HOME / bin 

Чтобы настроить Qt для Android, запустите следующее:

 cd / tmp / qt-везде-opensource-src-% VERSION%
./ configure -xplatform android-clang --disable-rpath -nomake tests -nomake examples -android-ndk <путь / к / sdk> / ndk-bundle / -android-sdk <путь / к / sdk> -no-warnings- ошибки 

На странице параметров настройки содержится дополнительная информация о параметрах настройки.

Вы можете предоставить параметр -android-abis , чтобы ограничить построенные Android ABI, с одним из следующих вариантов: armeabi-v7a , arm64-v8a , x86 или x86_64 :

 -android-abis armeabi-v7a, arm64-v8a 

Если параметр не указан, Qt создается для всех поддерживаемых ABI.

Чтобы построить настроенный код Qt, выполните следующую команду:

Примечание: nproc не является обязательным. Он представляет количество параллельных задач, которые может выполнять ваша система.

Затем установите встроенный Qt для Android:

Если вы не указали параметр конфигурации --prefix <каталог-установки> , установка будет помещена в папку / usr / local / Qt- <версия> . В Debian / Ubuntu перед командой make следует поставить префикс sudo .

Создание на Windows

Во-первых, вы можете использовать Android Studio для загрузки и установки пакетов Android SDK, необходимых для разработки приложений для Android. Для получения дополнительной информации см. Документацию Android Studio.

Подготовка среды сборки

Установите следующее:

Затем установите соответствующие переменные среды, заменив их соответствующими значениями:

 установить "JDK_ROOT =  \ bin \"
установить "MINGW_ROOT = "
установить "PERL_ROOT = " 

Откройте команду .exe и убедитесь, что:

  • , где gcc.exe перечисляет .exe сначала перед .exe .
  • , где mingw32-make.exe сначала указывает -make.exe .
  • , где javac.exe сначала перечисляет .

Примечание: В настоящее время невозможно использовать компиляторы Microsoft для создания инструментов хоста Windows для Qt Android.

Настройка коммерческой лицензии

Если у вас есть коммерческая лицензия Qt, установите файл лицензии. Если вы используете двоичный установщик или коммерческий Qt Creator, ваши лицензии автоматически загружаются и сохраняются в вашем локальном профиле пользователя % USERPROFILE% \ AppData \ Roaming \ Qt \ qtlicenses.ini . Кроме того, вы можете загрузить соответствующий файл лицензии с веб-портала вашей учетной записи Qt и сохранить его в своем профиле пользователя как % USERPROFILE% \. Qt-license . Если вы предпочитаете другое местоположение или другое имя файла, вам необходимо установить для переменной среды QT_LICENSE_FILE соответствующий путь к файлу.

Создание источников

Далее распаковываем архив. Распакуйте файлы в каталог, в который вы хотите установить Qt, например: C: \ Qt \% VERSION% . Этот путь установки не должен содержать пробелов или символов файловой системы Windows.

Выполните следующую команду для настройки Qt:

 cd <папка_кода_сжатого_кода>
configure.bat -prefix <путь для установки Qt в> -platform win32-g ++ -opengl es2 -xplatform android-clang -android-sdk  -android-ndk  \ ndk-bundle \ -nomake tests -nomake examples 

На странице параметров настройки содержится дополнительная информация о параметрах настройки.

Чтобы собрать настроенный код Qt для Android, выполните следующее:

Примечание: не является обязательным. Он представляет количество параллельных задач, которые может выполнять ваша система.

Теперь, чтобы установить Qt, выполните следующую команду:

.

Развертывание приложений на устройствах Android

На Android приложения распространяются в виде ZIP-пакетов особым образом структурированных типов, которые называются пакетами приложений (APK) или пакетами приложений Android (AAB). Файлы APK можно загружать и запускать на устройстве, тогда как AAB предназначен для интерпретации в магазине Google Play и используется для создания файлов APK.

Qt для Android имеет двоичные файлы для armv7a, arm64-v8a, x86 и x86-64. Для поддержки нескольких различных ABI в вашем приложении создайте AAB, содержащий двоичные файлы для каждого из ABI.Магазин Google Play использует AAB для создания оптимизированных пакетов APK для устройств, отправляющих запрос на загрузку, и автоматически подписывает их с помощью вашего ключа издателя.

Qt Creator поддерживает следующие методы развертывания приложений Android:

  • В виде отдельного распространяемого пакета приложений (APK).
  • Начиная с Qt 5.14.0, как пакет приложений (AAB), предназначенный для распространения в магазине Google Play.

Примечание: Начиная с Qt Creator 4.12, Ministro не поддерживается.

Чтобы указать настройки для пакетов приложений, выберите Projects > Build Android APK > Details .

Для получения дополнительных сведений о параметрах запуска приложений см. Определение параметров запуска для устройств Android.

Приложения для упаковки

Поскольку объединение приложений в пакеты APK нетривиально, Qt 5 предоставляет инструмент развертывания под названием androiddeployqt .Когда вы развертываете приложение с помощью Qt для Android Kit , Qt Creator использует инструмент androiddeployqt для создания необходимых файлов и объединения их в APK:

  • Файлы Java, которые служат точкой входа в ваше приложение и автоматически загружают Qt и выполняют собственный код в вашем приложении.
  • AndroidManifest.xml, который предоставляет метаинформацию о вашем приложении.
  • Другие файлы XML, которые определяют зависимости вашего приложения.
  • Файлы ресурсов.
  • Библиотеки и файлы QML, которые могут быть включены в проект в зависимости от выбранного вами метода развертывания.
  • оболочки Gradle, необходимые для загрузки и использования Gradle.
  • Gradle скрипт, необходимый для Java IDE, например Android Studio. Это позволяет пользователю расширять Java-часть без копирования наших исходных текстов Java. Это также позволяет средам IDE обеспечивать завершение кода, подсветку синтаксиса и т. Д.

Оболочки и скрипты Gradle объединяются, только если вы используете Gradle для сборки пакетов приложений.Для получения дополнительной информации см. Подключение устройств Android.

Чтобы просмотреть пакеты, созданные инструментом androiddeployqt , установите флажок Открыть расположение пакета после сборки .

Пакеты развернуты на подключенных устройствах Android. Чтобы переключить устройство, используемое в качестве устройства по умолчанию для выбранного набора, выберите Projects > Run > Deploy to Android Device > Reset Default Devices . Настройка применяется до тех пор, пока вы не перезапустите Qt Creator.Для получения дополнительной информации см. Выбор устройств Android.

Для получения дополнительных сведений об инструменте androiddeployqt см. Развертывание приложения на Android.

Указание настроек для пакетов

Вы можете указать настройки для инструмента androiddeployqt в Qt Creator и в файле проекта .pro. Чтобы указать настройки в Qt Creator, выберите Projects > Build > Build Android APK > Details .

Инструмент anddroiddeployqt использует информацию из файла .pro проекта для создания APK. Дополнительные сведения о переменных qmake, которые можно установить в файле .pro для адаптации APK, см. В разделе Развертывание приложения на Android.

Вы можете просмотреть информацию о том, что делает инструмент anddroiddeployqt, на панели Compile Output . Чтобы просмотреть дополнительную информацию, установите флажок Подробный вывод .

Выбор уровня API

В поле Android build SDK вы можете выбрать уровень API, который будет использоваться для создания приложения.Обычно следует выбирать новейший доступный уровень API.

Примечание: Для Qt 5.12.0–5.12.5 и Qt 5.13.0–5.13.1 следует использовать Android build SDK 28. Для более поздних версий, чем последняя, ​​следует использовать SDK сборки 29 или самую последнюю.

В этом поле не указан минимальный поддерживаемый уровень API или целевой уровень API, который можно указать в манифесте Android. См. Раздел «Редактирование файлов манифеста». Дополнительные сведения об уровнях API Android см. В разделе Что такое уровень API ?.

Здание AABs

Для локального тестирования приложения используйте формат APK, потому что пакет можно загрузить прямо на устройство и запустить. Для распространения в магазине Google Play создайте AAB, установив флажок Build .aab (Android App Bundle) .

При построении с помощью CMake вы можете просмотреть выбранные ABI в поле Initial CMake parameters в разделе CMake . Вы можете установить дополнительные ABI как значения ключа ANDROID_ABI:

При сборке с qmake вы можете выбрать ABI в поле ABI в Build Steps :

Подписание пакетов Android

Чтобы опубликовать приложение, вы должны подписать его с помощью пары открытого и закрытого ключей , которая состоит из сертификата и соответствующего закрытого ключа и идентифицирована псевдонимом .Пара ключей используется для проверки того, что будущие версии вашего приложения действительно созданы вами.

Предупреждение: Храните пару ключей в надежном месте и делайте резервные копии, потому что вы не сможете обновить приложение, если потеряете пару ключей.

Вы можете использовать Qt Creator для создания хранилища ключей и самозаверяющего сертификата . Созданный сертификат имеет структуру цифрового сертификата X.509 v3. Он содержит информацию о версии, серийном номере и сроке действия сертификата, ID алгоритма, который используется для шифрования данных, организации, выдавшей сертификат, и субъект (владелец) сертификата.В случае самоподписанного сертификата издатель и владелец сертификата совпадают. Кроме того, сертификат содержит информацию об алгоритме, который используется для подписи сертификата, а также подпись сертификата.

Хранилище ключей защищено паролем. Кроме того, вы можете защитить каждый псевдоним индивидуальным паролем.

Когда вы подписываете приложение Android, вы должны выбрать хранилище ключей, которое содержит сертификаты и псевдоним сертификата из хранилища ключей.Открытый ключ (сертификат) псевдонима вставляется в APK во время подписания.

Для создания хранилища ключей и самозаверяющего сертификата:

  1. В поле Keystore выберите Create , чтобы создать новое хранилище ключей, которое содержит одну пару ключей в диалоговом окне Create a Keystore и Certificate :

  2. В группе Хранилище ключей введите пароль для защиты хранилища ключей.
  3. В группе Сертификат укажите размер ключа и срок действия сертификата.Вы можете указать отдельный пароль для защиты пары ключей или использовать пароль хранилища ключей.
  4. В группе Отличительные имена сертификатов введите информацию о себе и своей компании или организации, которая идентифицирует издателя и владельца пары ключей.
  5. Выберите Сохранить .
  6. В диалоговом окне Имя файла хранилища ключей введите имя хранилища ключей и выберите для него местоположение.
  7. В диалоговом окне Хранилище ключей введите пароль хранилища ключей, чтобы создать пару ключей в хранилище ключей.

Чтобы подписать пакет Android с помощью пары ключей, установите параметры группы Подписать пакет , описанные в разделе Определение параметров для пакетов:

  1. В поле Хранилище ключей выберите Выберите , чтобы выбрать существующее хранилище ключей.
  2. В поле Псевдоним сертификата выберите псевдоним из списка пар ключей, содержащегося в хранилище ключей.
  3. Установите флажок Подписать пакет , чтобы использовать псевдоним для подписи пакета Android.
Добавление внешних библиотек

Qt Creator автоматически определяет, какие библиотеки Qt использует приложение, и добавляет их в качестве зависимостей. Если приложению требуются внешние библиотеки, укажите их в поле Projects > Build > Build Android APK > Additional Libraries . Библиотеки копируются в папку библиотеки вашего приложения и загружаются при запуске.

Чтобы добавить библиотеки OpenSSL, выберите Включить предварительно созданные библиотеки OpenSSL в группу Дополнительные библиотеки .Это добавит проект включения OpenSSL, определенный в настройках устройства в группе Android OpenSSL . Это можно использовать для проектов QMake и CMake.

В противном случае вы можете вручную добавить пути к необходимым библиотекам libssl.so и libcrypto.so в поле Дополнительные библиотеки .

Редактирование файлов манифеста

Вы можете использовать переменные qmake, чтобы указать все настройки, необходимые для инструмента androiddeployqt , и вам не нужен файл манифеста Android, если вам не нужно указывать специфические настройки Android, такие как значок приложения.Кроме того, файл манифеста необходим, если вы хотите опубликовать пакет в Play Store. Если вы используете qmake в качестве системы сборки, вы можете создать файл манифеста Android и отредактировать его в Qt Creator. Выберите Projects > Build > Build Android APK > Create Templates , чтобы создать файл и открыть его в редакторе манифеста Android.

  1. В поле Имя пакета введите имя пакета для приложения.Приложение запускается автоматически сгенерированной программой запуска Java, которая упакована вместе с приложением в пакет Android (.apk). Дополнительные сведения см. В разделе «Основы приложений для Android».
  2. Вы можете указать внутренний номер версии для пакета в поле Код версии . Он используется для определения того, является ли одна версия приложения более новой, чем другая. В поле Имя версии укажите номер версии, отображаемый для пользователей.
  3. В поле Minimum required SDK выберите минимальный уровень API, необходимый для запуска приложения.Минимальный поддерживаемый уровень API для Qt Creator — android-9. Однако версии Qt могут иметь разные минимальные уровни API, и поэтому Qt Creator не позволяет вам выбирать уровень API, который версия Qt, указанная для набора, не поддерживает.
  4. В поле Target SDK выберите целевой уровень API приложения. Это влияет на активацию некоторых функций совместимости в ОС. Значение, используемое инструментом androiddeployqt по умолчанию, равно 14, что означает, что кнопка переполнения на панели навигации системы не будет активирована по умолчанию.
  5. В группе Application задайте имя приложения. Вы также можете дать занятию имя и выбрать его для запуска.
  6. В поле Извлечение стилей установите метод, который Qt использует для извлечения информации о стилях:
  7. В значке приложения выберите значок. Щелкните значок Master icon , чтобы выбрать значок с самым высоким разрешением, затем он изменит размер и установит три поля значка для значков с низким, средним и высоким разрешением DPI по мере необходимости.
  8. На начальном экране выберите изображения для отображения в качестве заставок в зависимости от ориентации устройства. Вы можете настроить отображение различных изображений на дисплеях с низким, средним и высоким разрешением. По умолчанию заставка автоматически скрывается при отрисовке действия. Чтобы он оставался видимым до вызова QtAndroid :: hideSplashScreen (), установите флажок Sticky splash screen .
  9. В службах Android вы можете добавлять и удалять службы. Вы должны ввести как минимум название класса обслуживания для новой услуги.Если вы выбрали Запуск во внешнем процессе , вам также необходимо ввести имя процесса. Если вы выбрали Run in external library , вам необходимо ввести имя библиотеки. Аргументы службы являются обязательными для службы, которая не выполняется во внешней библиотеке. Дополнительные сведения о написании кода службы и структуре служб см. В разделе Службы Android.
  10. В поле Permissions вы можете указать разрешения, необходимые вашему приложению. Начиная с Android 6.0 (API 23), разрешения должны запрашиваться во время выполнения (см. QtAndroid :: requestPermissionsSync () или QtAndroid :: requestPermissions ()). Для более низких уровней Android API пользователям предлагается предоставить разрешения при установке приложения. Затем ОС Android предоставляет приложению доступ к соответствующим данным и функциям.
  11. Установите флажок Включить разрешения по умолчанию для модулей Qt и Включить функции по умолчанию для модулей Qt, чтобы добавить разрешения, необходимые для библиотек Qt.Это может быть android.permission.WRITE_EXTERNAL_STORAGE для Qt Core или android.permission.ACCESS_COARSE_LOCATION для Qt Location.
  12. Чтобы добавить разрешение, выберите его из списка и нажмите Добавить .

В верхнем заголовке выберите вкладку Источник XML , чтобы отредактировать файл в формате XML.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *