QtMir и QtUbuntu#

QtMir и QtUbuntu являются Qt Platform Abstractions (QPAs, абстракции Qt-платформы) для платформы Ubuntu Touch. QtMir можно рассматривать как сервер для Unity8, тогда как QtUbuntu используется для клиентских приложений. Каждый из них позволяет своим доменам использовать высокоуровневые абстракции Qt окон, элементов управления и так далее, не беспокоясь о базовой операционной системе.

QtMir (server)#

QtMir QPA позволяет писать Unity8, оболочку для Ubuntu Touch, на QML и Qt C ++ при работе на Mir Surfaces и Windows. Это также позволяет представить рабочий стол и рассматривать его как Qt Scene Graph.

Вы найдете большую часть лог-файлов QtMir в лог-файлах Unity8, которые обычно хранятся в директории``/home/phablet/.cache/upstart/unity8`` на мобильном устройстве Ubuntu Touch. Другие лог-файлы, такие как qtmir.sessions и qtmir.surfaces, напрямую относятся к различным модулям в кодовой базе QtMir.

Хотя Unity8 по умолчанию показывает почти все лог-файлы QtMir, можно включить еще более подробное ведение лог-файлов, если внести изменения в файл /usr/share/upstart/sessions/unity8.override:

env QT_LOGGING_RULES='qtmir.*=true'

Затем перезапустите Unity8:

restart unity8

QtUbuntu (client)#

QtUbuntu QPA использует клиентский API Mir и Ubuntu Platform API, чтобы предоставить приложениям Ubuntu Touch стабильный API для совместимости с оборудованием.

Поскольку QtUbuntu используется приложениями напрямую, вся служебная информация будет находиться в лог-файле приложения. В большинстве случаев QtUbuntu не выводит лог-файлы. Но если хочется получить больше информации, можно настроить переменную среды QT_LOGGING_RULES. Поскольку приложения в Ubuntu Touch запускаются с использованием пользовательского сеанса Upstart, можно задать эту опцию для всех приложений с помощью следующей команды (она будет работать до перезагрузки устройства):

initctl set-env QT_LOGGING_RULES='qt.qpa.mirclient.*=true'

Мы планируем заменить QtUbuntu на QtWayland в будущем.

Компоненты#

В QtUbuntu есть несколько вспомогательных компонентов для обеспечения других функций платформы Ubuntu Touch. Теоретически их можно использовать на других платформах для обеспечения аналогичных функций. На практике этого никогда не было.

QtUbuntu-Camera предоставляет модуль aalCamera (Android Abstraction Layer Camera) для QtMultimedia. Этот плагин позволяет приложениям получать доступ к камерам устройств Android через стандартный API QtMultimedia. Мы пытаемся заменить этот компонент плагином gst-droid для GStreamer на всех портах системы для новых Android-устройств.

QtUbuntu-Sensors обеспечивает тактильную обратную связь с Android, датчиками GPS, ориентации и акселерометра для`QtSensors`_. Мы пытаемся заменить этот компонент отдельным демоном`sensorfw`_, который может предоставлять эти функции с помощью Android-драйверов или стандартных драйверов ядра Linux.

QtUbuntu-Media обеспечивает аппаратное кодирование и декодирование аудио/видео контента на устройствах Android в QtMultimedia Компонент тесно связан с media-hub.