Первый коммит “Android mkspecs and semaphore” в стремлении портировать Qt 4 на Android был совершен на Рождество 2009 года румынским разработчиком BogDan Vatra.
22 января 2010 года он закоммитил “A small step for Qt, a giant leap for android” с работающим плагином графической системы и возможностью запуска приложений на реальных Android-устройствах. Чтобы отпраздновать это событие, он выложил видео с демонстрацией работы.
20 февраля 2011 года он объявил о первом пригодном для разработки релизе Qt 4 для Android под названием Necessitas.
В течение последних 4 лет BogDan, при поддержке таких же, как он, энтузиастов, продолжает разрабатывать Necessitas в свободное от работы время.
8 ноября прошлого года BogDan согласился с добавлением результата его трудов в Qt 5 и передачей порта в Qt Project.
4 января он отправил первую версию Qt 5 для Android в WIP-бранч (Work In Progress), а недавно мы интегрировали её в «dev» бранч, что означает, что этот проект станет частью версии Qt 5.1, когда она будет выпущена.
В этой предварительной версии мы сфокусировались на опыте разработчиков, чтобы вы могли легко запускать и тестировать свои приложения на Android-устройствах. И хотя ничто не мешает вам распространять приложения с Qt 5.1 через app store, мы рекомендуем не делать этого и дождаться релиза Qt 5.2, потому что мы хотим улучшить поддержку ещё больше: внести дополнительные возможности для развёртывания приложений, добавить изысканности в целом, улучшить поддержку Android API, позволив расширить ваше приложение Java-кодом или сопоставленным ему C++ API.
Для начала, вот видео с приложением Qt 5 Cinematic Experience, запущенным на (слева направо): Nexus 4, Asus Transformer Pad TF300T и Nexus 7. Это приложение стало нашим любимым для представления на различных мероприятиях, так как отлично демонстрирует новые графические возможности Qt Quick 2: шейдерные эффекты, системы частиц, новые PathAnimation, а также низкоуровневое аппаратное ускорение SceneGraph, что позволяет всему этому работать с частотой обновления 60 кадров в секунду.
В дополнение к основной части Qt, мы также подерживаем QML Media Player API в QtMultimedia. Вот хороший видеоплеер, написанный Andy на QML, с фрагментным шейдером поверх видео. Приложение запущено на Asus Transformer TF300:
Демонстрации мультитача: простой пример рисования рукой, запущенный на Nexus 4. Здесь также показана поддержка нативных меню:
Низшей поддерживаемой версией Android API является API уровня 10, который соотвествует версии Android 2.3.3. Это означает, что Qt-приложения могут работать на бюджетных устройствах, таких, как этот Huawei Y10:
Обзор того, что мы уже имеем:
- Поддержка создания Qt Widgets и Qt Quick приложений, которые работают на устройствах под управлением Android.
- Поддержка Android API уровня 10 (версия 2.3.3) и выше.
- Поддержка QML медиа-плеерной функциональности в QtMultimedia.
- Множество наиболее часто используемых датчиков в QtSensors.
- Конечно же, кроссплатформенные возможности Qt (в том числе Qt Quick controls и QtGraphicalEffects).
- Разработка и настройка приложений в Qt Creator 2.7.
- Развёртывание тестовых сборок на устройство непосредственно из Qt Creator.
Кроме того, в ближайшее время мы планируем реализовать поддержку распространения библиотек Qt через Ministro, что позволит использовать один и тот же набор библиотек Qt в разных приложениях на одном устройстве; это будет основным способом развёртывания приложений Qt 5.1. Текущий статус поддержки вы всегда можете посмотреть на нашей вики. Дайте нам знать, если что-то пойдёт не так. Обычно нас можно найти на канале #necessitas Freenode IRC.
Вы спросите, что дальше? На самом деле, вы можете помочь нам решить это, сообщая о багах и предлагая новые функции, а также внося свой код. Мы постоянно работаем над улучшением Qt 5 для Android и из ваших отзывов можно извлечь много пользы. В вики мы собираем список проверенных устройств. Мы будем признательны, если вы уделите время и добавите в список протестированные вами устройства (а также укажете любые неполадки, найденные вами).
И наконец: большое спасибо BogDan Vatra, Ray Donnelly и всем остальным, кто внёс свой вклад в проект Necessitas за последние годы и в проект Qt 5 для Android в последние месяцы. И спасибо всем, кто сделает вклад в будущем.
Автор: epicfailguy93