Вольный перевод новости от Digia.
Первый коммит на нелёгком пути к Qt на Android был сделан в католическое Рождество в 2009-м году: «Android mkspecs and semaphore», автор BogDan Vatra.
22 января 2010-го он закоммитил «A small step for Qt, a giant leap for Android» с работоспособным плагином для графической подсистемы и смог по-настоящему запустить Qt-приложения на устройстве с Android. Тогда же он загрузил видео в честь знаменательного события.
20 февраля 2011 был анонсирован первый пригодный к использованию выпуск Qt 4 для Android под именем Necessitas.
Спустя три с лишним года BogDan и другие продолжают разрабатывать Necessitas в свободное время, а 8 ноября 2012 года BogDan согласился передать свои труды проекту Qt Project и новой версии фреймворка — Qt 5.
4 января была отправлена первая версия Qt 5 для Android в ветку WIP (work-in-process) и совсем недавно мы интегрировали её в ветку dev, что означает включение этого кода в грядущем выпуске Qt 5.1.
В преддверии этого пробного выпуска мы сосредоточили усилия на удобстве для разработчиков, чтобы программисты с помощью Qt могли легко запустить и протестировать свои приложения на Android-устройствах. Хотя ничто не мешает вам выложить своё приложение в маркет с выходом Qt 5.1, мы всё же рекомендуем подождать Qt 5.2, в котором планируется добавить ещё больше удобств: опции, задающие способ установки приложения, отполированный фреймворк в целом, более полная поддержка API платформы Android, что позволит расширить приложение как с помощью Java, так и использовать биндинги к C++.
Посмотрим на демонстрацию!
Для начала, вот видео, в котором запущен пример Qt 5 Cinematic Experience, где показаны (слева направо): Nexus 4, Asus Transformer Pad TF300T и Nexus 7. Cinematic Experience сразу стал лицом проекта, потому что он прекрасно демонстрирует визуальные возможности Qt Quick 2, такие как программирование эффектов с помощью шейдеров, системы частиц, новая анимация PathAnimation, а также аппаратно ускоренный SceneGraph, благодаря которому демо показывает 60 кадров в секунду.
В дополнение к основным модулям Qt, также поддерживается QML API для медиаплеера в QtMultimedia. Вот отличный плеер, написанный Andy на QML, с эффектом, наложенным на видео с помощью фрагментного шейдера. Плеер запущен на Asus Transformer TF300.
Для демонстрации поддержки мультитача можно посмотреть пример, запущенный на Nexus 4, в котором картинка рисуется касаниями пальцев. Также здесь можно увидеть поддержку нативных меню.
Минимальный API, поддерживаемый в Qt 5 — 10, которому соответствует Android 2.3.3 («Gingerbread»). Это означает, что приложения также могут запускаться на бюджетных устройствах со старой версией Android, таких как Huawei Y100.
Обзор достигнутого:
- поддержка создания приложений на основе Qt Widgets и Qt Quick, способных запуститься на устройствах с Android;
- поддержка Android API 10 (Android 2.3.3) и выше;
- программный интерфейс QML для медиаплеера, использующий Qt Multimedia;
- набор наиболее часто используемых сенсоров в QtSensors;
- разумеется, кроссплатформенность от Qt (включающая контролы Qt Quick и Qt Graphical Effects);
- разработка и настройка свойств приложений в Qt Creator 2.7;
- развёртывание тестовой сборки на устройстве прямо из Qt Creator.
В дополнение к достигнутому, в скором времени планируется добавить возможность распространения библиотек Qt с помощью сервиса Ministro, который позволит использовать один набор библиотек Qt на устройстве одновременно несколькими приложениями. Ministro станет основным способом распространения приложений в Qt 5.1. Кстати, способ уже доступен: инструкцию к нему читайте на wiki. Если что-то пойдёт совсем неправильно — нас можно найти на канале #necessitas во freenode.
Спросите, что дальше? Многое зависит от вас! Можно сообщать об ошибках и открывать фич-реквесты либо отправлять патчи. Мы будем непрерывно работать над улучшением Qt 5 для Android и процесс может идти гораздо быстрее за счёт ваших отзывов. На той же wiki мы собираем список устройств, на которых был подтверждён запуск Qt. Ваши усилия по тестированию и добавлению новых устройств в этот список (а также отчёт о замеченных при этом проблемах) будут неоценимы :)
В завершение, огромное спасибо BogDan Vatra, Ray Donelly и всем остальным, кто улучшал проект Necessitas все эти годы и Qt 5 для Android за последние несколько месяцев. И заранее благодарим всех, кто поможет проекту в будущем.
>>> Подробности