Приложения Windows RT в устройствах на базе Windows Embedded 8 Standard

Павел Белевский

Журнал Control Engineering

№5(47)

В очередной статье из цикла публикаций, посвященных разработке устройств на базе встраиваемой ОС Windows Embedded 8 Standard, рассматриваются вопросы создания приложений Windows RT и их интеграция в образ ОС.

Приложения и ОС являются взаимосвязанными элементами любой системы, в том числе и специализированных встраиваемых систем. Операционная система в данном тандеме играет, скажем так, несущую роль, а приложение выполняет специфические для конкретного устройства задачи. Одной из неотъемлемых задач является предоставление интерфейса пользователя. Собственно, об этой основной категории приложений мы и поговорим с учетом особенностей новейшей встраиваемой ОС Windows Embedded 8 Standard.

В первую очередь следует отметить весь спектр возможностей по разработке приложений для WE 8 Standard. Ключевым моментом здесь является тот факт, что эта ОС является компонентной версией настольной версии Windows 8 и полностью с ней совместима в плане драйверов и приложений. То есть, когда речь заходит о создании приложений, для данной встраиваемой системы не требуется специализированных средств разработки и, более того, можно использовать уже готовые приложения, которые были разработаны для настольной версии. Это, разумеется, очевидный плюс. Далее, если говорить о самой Windows 8, то следует отметить широкие возможности по разработке приложений. Чтобы получить доступ к наиболее полному набору программных интерфейсов (API), для разработки следует воспользоваться средой Visual Studio 2012 — именно в ней доступны все API, поддерживаемые ОС.

С выходом Windows 8 появился новый класс приложений, который также доступен и во встраиваемой версии WE 8 Standard. Это так называемые приложения в Modern-стиле, или Windows RT. При этом приложения, доставшиеся в наследство от предыдущих версий Windows, называются Desktop-приложения. Основные отличия Modern-приложений от привычных настольных является их модель исполнения и способ распространения/установки.

Modern-приложения исполняются в изолированных контейнерах исполняющей среды Windows RT, которая является составляющей частью ОС Windows 8 и WE 8 Standard. Данный нюанс накладывает определенные ограничения на спектр применения Modern-приложений. Таким образом, Windows RT-приложения являются не самой лучшей альтернативой для классических настольных приложений, разработанных на Win32 или.NET Framework, в задачах тесного взаимодействия с аппаратными узлами устройства. Но, с другой стороны, они наилучшим образом подходят как раз для интерфейсных приложений, где достаточно возможностей изолированного контейнера. Modern-приложения отлично подходят для разработки пользовательских интерфейсов с сенсорным вводом.

Итак, рассмотрим основные этапы разработки и развертывания Modern-приложений в устройствах на базе WE 8 Standard. Для разработки Windows RT-приложений можно воспользоваться бесплатной редакцией известных средств разработки от компании Microsoft — Visual Studio Express 2012 for Windows 8. Разработка Modern-приложений может вестись на одном из трех языков программирования: C/C++, C# или JavaScript. При этом для первых двух языков для описания интерфейса используется уже привычный по Windows Presentation Foundation (WPF) декларативный язык XAML. В случае JavaScript интерфейс описывается хорошо знакомым по веб-приложениям языком HTML со специальными расширениями для разработчиков приложений Windows 8. В общем и целом процесс разработки интерфейсного приложения для устройства на базе WE 8 Standard практически не отличается от разработки приложения для настольной Windows 8, за исключением, пожалуй, одного момента, который связан с отработкой завершения работы приложения. В алгоритме запуска и завершения приложения, собственно, и кроется основное отличие между настольным и встраиваемым применением приложения.

Изначально идеология Windows RT-приложений подразумевает, что центральным элементом интерфейса пользователя является стартовый экран (рис. 1), с которого выполняется запуск приложений. Также у пользователя есть возможность завершения приложений и переключения между ними. Такой сценарий взаимодействия пользователя с системой свойственен настольной системе, но абсолютно не приемлем для встраиваемой системы. Во встраиваемой системе пользователь, как правило, работает с одним единственным приложением, которое и является оболочкой системы. Выход из оболочки может означать, что требуется выключить устройство или зайти в систему под другим пользователем. Для реализации встраиваемого сценария использования Modern-приложений в WE 8 Standard имеются два специальных компонента — фильтр жестов и загрузчик Modern-приложений. В средствах разработки, о которых рассказывалось в предыдущих статьях, за эти возможности отвечают модули Gesture Filter и Windows 8 Application Launcher соответственно.

Рис.1. Стартовый экран Windows 8

Фильтр жестов позволяет выборочно заблокировать служебные жесты ОС Windows 8, предотвращая тем самым доступ к стартовому экрану, закрытие текущего приложения или переключение на другое запущенное приложение.

Задача Windows 8 Application Launcher — обеспечить автоматический запуск Modern-приложения при входе пользователя в систему и отработать момент завершения приложения. Настройки данного модуля позволяют сконфигурировать поведение системы (рис. 2).

Рис.2. Настройки загрузчика приложений Windows 8

Для этого приложение, в зависимости от выбора пользователя, может завершиться с тем или иным кодом возврата. Windows 8 Application Launcher, в свою очередь, анализирует код и выполняет связанное с ним действие. Разработчику доступен следующий набор действий: «0» — перезапуск приложения; «1» — перезагрузка системы; «2» — выключение системы; «3» — завершение работы Windows 8 Application Launcher; «4» — выход из системы.

Следует еще раз подчеркнуть, что, благодаря совместимости WE 8 Standard с настольной версией, процесс разработки приложений в общем и Modern-приложений в частности никоим образом не отличается от процесса разработки приложений для настольной Windows 8. Более того, как правило, разработка и тестирование происходит на настольной версии, и только когда приложение будет полностью готово, оно переносится на устройство под управлением WE Standard 8. В при этом процедура развертывания нового класса приложений обладает рядом нюансов, которые связаны со способом их распространения и установки.

Дело в том, что для пользователей настольной версии Windows 8 основным каналом распространения Modern-приложений является централизованный общедоступный портал Windows Store. Для поиска и установки опубликованных приложений служит встроенное приложение Store (рис. 3).

Рис.3. Приложение Store в Windows 8

Прежде чем приложение станет доступным в Windows Store, оно должно пройти процедуру сертификации. Выгоду от сертификации в первую очередь получают пользователи приложений, поскольку гарантируется определенный уровень качества и снижается риск установки зловредного ПО.

Для встраиваемых решений подход с публикацией приложений на общедоступном портале не всегда хорош, поэтому процедура установки сертифицированных приложений в случае WE 8 Standard несколько отличается. Эти отличия заключаются в том, что для OEM-производителей и производителей встраиваемых устройств на базе Windows Emdedded существует специальная закрытая область Windows Store. Именно в эту, недоступную для рядовых пользователей Windows 8, область попадают встраиваемые Modern-приложения после сертификации в Windows Store. В то же время в WE 8 Standard нет приложения Store и, соответственно, нет доступа к публичному Windows Store. В итоге процедура установки сертифицированных Modern-приложений в WE 8 Standard заключается в загрузке пакета приложения с закрытой части Windows Store и предустановке его на устройстве при помощи утилиты DISM или команд PowerShell.

Есть еще один способ установки без прохождения процедуры сертификации. В этом случае используется другой механизм развертывания под названием Sideloading. По умолчанию возможность установки при помощи Sideloading включена только в корпоративной версии Windows 8 Enterprise. В остальных версиях Windows 8 и, в том числе, в компонентной WE 8 Standard требуется активация Sideloading специальным ключом.

***

Таким образом, WE 8 Standard предоставляет разработчикам устройств широкий выбор технологий по разработке приложений. Наиболее инновационными и интересными возможностями обладает новый класс приложений — Windows RT или Modern, которые подходят для разработки пользовательских интерфейсов на базе сенсорных экранов. При разработке приложений для WE 8 Standard не требуется особых знаний встраиваемых систем. При этом, в отличие от настольной версии, Windows Embedded 8 Standard позволяет реализовывать полноценное встраивание новых приложений благодаря фильтру жестов и загрузчику Modern-приложений.

Полный текст статьи. (pdf, 6 Mb)

Павел Белевский,

Ведущий специалист отдела исследований и разработок,

Департамент встраиваемых систем,

ООО «Кварта Технологии», г. Москва,

info@quarta.ru