1

Тема: Представляем Boot to Qt

Представляем Boot to Qt

Источник: digia.com.

В течение нескольких последних месяцев команда Digia Qt работала над новым проектом под кодовым названием «Boot to Qt», и сегодня мы рады представить его в качестве предварительной ознакомительной версии (technology preview).

Boot to Qt – это коммерческий проект, который предоставляет комплексное решение для создания отличных пользовательских интерфейсов для embedded (встраиваемых) устройств. Данный проект включает в себя следующие элементы:

  • Основанный на Qt платформе легковесный UI для Embedded Linux – Boot to Qt построен поверх системного окружения платформы Android (kernel/baselayer), и предлагает изящный способ создания красивого и производительного UI для встраиваемых (embedded) устройств.

  • Подготовленные образы – у нас есть несколько образов для различных устройств, которые включают программный стек Boot to Qt. Это позволяет приступить к работе сразу, начав разрабатывать приложения.

  • Полная интеграция с Qt Creator – установка приложения и его запуск на девайсе одним кликом, полнофункциональная интеграция со средой разработки.

  • Симулятор – основанный на Virtual Box симулятор позволяет разрабатывать без использования реального «железа» (hardware) и делает доступным моделирование системы для взаимодействия с устройствами ввода, такими как GPS и средства связи (сети).

В данном технологическом превью основное внимание уделено стеку, построенному поверх системного окружения платформы Android (Android baselayer). Надеемся позже, летом, выпустить аналогичное превью для традиционного embedded Linux, с аналогичным программным стеком, готовыми образами и интеграцией со средой разработки.

Официальный релиз планируется к концу этого года.

Следующее видео демонстрирует Boot to Qt в действии на некоторых Android устройствах:

А это видео демонстрирует, как Boot to Qt SDK работает: как конфигурировать QtCreator, как запускать приложения на эмуляторе и на embedded устройстве:


Комплектация Boot to Qt

Программный стек включает множество модулей Qt фреймворка, с некоторыми дополнениями:

  • Qt Core, Qt Gui, Qt Network, Qt Widgets, Qt Xml

  • Qt QML и Qt Quick

  • Qt Quick Controls

  • Qt Graphical Effects

  • Специфичные для Boot to Qt дополнения, включая виртуальную клавиатуру, элемент регулировки яркости и функционал выключения/перезагрузки

В данном предварительном релизе поддерживаются следующие устройства:

Это не финальный набор поддерживаемых устройств, это то, с чего мы начинаем. Если у вас есть предложения по другим устройствам – дайте нам знать об этом. Стек Boot to Qt также работает на устройствах с x86 архитектурой.

Сейчас данный стек однопроцессный, т.е. имеется один процесс, в котором в качестве лончера (модуля запуска) используется QML приложение, которое и запускает остальные QML приложения внутри этого процесса. Мы предполагаем использовать Android Gralloc API для многопроцессного совместного использования аппаратных буферов (для реализации межпроцессного взаимодействия), но это задача выходит за рамки версии 1.0 данного проекта.

Также внутри нашей команды разработки было много разговоров о Multimedia и Webkit – мы планируем добавить эти модули в программный стек, но, возможно, не в первом официальном релизе. Модули, уже имеющиеся в программном стеке, позволяют рассматривать стек как достаточно мощный инструмент для различных случаев использования.


Производительность

В Qt 5 была представлена новая графическая архитектура с использованием нового Scenegraph, работающего поверх OpenGL ES 2.0, для реализации пользовательских интерфейсов через Qt Quick 2. Это позволило сделать Qt Quick очень подходящим для выполнения на embedded платформах, даже с очень умеренными характеристиками. Например, демонстрационный лончер (модуль запуска), который поставляется на предоставляемых образах, демонстрирует скорость вывода контента 60 кадров в секунду (FPS) на всех наших устройствах.

Интересное поведение загрузки процессора (CPU) было обнаружено во время тестов программы запуска приложений (лончера) на Nexus 7. В результате тестирования оказалось, что при анимации на большей части экрана размером 1280x800 при скорости вывода  60 кадров в секунду, процессор был загружен только на половину – при том что 3 ядра были отключены, а частота оставшегося была снижена до 102 MHz!

Также очень хорошие результаты были получены по скорости загрузки – на рисунке ниже представлена диаграмма сравнения загрузки Boot to Qt и нативного Anroid. Конечно, надо принять во внимание, что Android загружает еще множество дополнительных модулей, которые не загружает B2Qt  – но большинство embedded устройств не нуждается в этих дополнительных модулях. Так что данный пример тоже очень значим.

Представляем Boot to Qt
Время загрузки, в секундах, от включения устройства до появления B2Qt лончера или Android Homescreen.

Надеемся, что нам удастся еще более уменьшить данный параметр – время загрузки. Например, для платфломы Raspberry Pi с Qt5 – сейчас это время составляет порядка 3 секунд.


Получение доступа

Для получения более подробной информации, пожалуйста, перейдите на страницу продукта. Boot to Qt доступен для тестирования по запросу: если вы хотите опробовать наш продукт, заполните форму Evaluate Boot to Qt и мы с радостью предоставим вам доступ для загрузки.

На то, о чем можно спросить на форуме, не отвечаю через личные сообщения, аську, почту и т.п. для общения есть jabber-конференция: maemo@conference.jabber.org.
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!