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.
You’ll find most of QtMir’s logging in Unity8’s logs, normally stored at /home/phablet/.cache/upstart/unity8 on Ubuntu Touch. Different logging categories, like qtmir.sessions and qtmir.surfaces, relate directly to different modules within QtMir’s codebase.
Хотя Unity8 по умолчанию показывает почти все лог-файлы QtMir, можно включить еще более подробное ведение лог-файлов, если внести изменения в файл /usr/share/upstart/sessions/unity8.override:
env QT_LOGGING_RULES='qtmir.*=true'
Затем перезапустите Unity8:
restart unity8
QtUbuntu (client)¶
The QtUbuntu QPA uses the Mir client API and Ubuntu Platform API to provide Ubuntu Touch apps with a stable hardware compatibility API.
Since QtUbuntu is used directly by apps, any logging output from it will be located in an app’s log file. Most of the time, QtUbuntu gives no logging output. However, if you would like to receive more output, you can set the QT_LOGGING_RULES environment variable appropriately. Since apps on Ubuntu Touch are started using Upstart’s user session, you can set this for all apps until you restart your device with the following command:
initctl set-env QT_LOGGING_RULES='qt.qpa.mirclient.*=true'
Мы планируем заменить QtUbuntu на QtWayland в будущем.
Компоненты¶
В QtUbuntu есть несколько вспомогательных компонентов для обеспечения других функций платформы Ubuntu Touch. Теоретически их можно использовать на других платформах для обеспечения аналогичных функций. На практике этого никогда не было.
QtUbuntu-Camera provides the aalCamera (Android Abstraction Layer Camera) plugin to QtMultimedia. This plugin allows apps to access Android device cameras through the QtMultimedia standard API. We are trying to replace this component with the gst-droid plugin for GStreamer for all new Android device ports.
QtUbuntu-Sensors provides Android haptic feedback, GPS, orientation, and accelerometer sensors to QtSensors. We are trying to replace this component with sensorfw, a single daemon capable of providing these functions using Android or standard Linux kernel drivers.
QtUbuntu-Media обеспечивает аппаратное кодирование и декодирование аудио/видео контента на устройствах Android в QtMultimedia Компонент тесно связан с media-hub.