Мой опыт работы с технологией Windows Mobile
Вместо введения
Краткое описание технологии
История развития
Основные возможности
Достоинства и недостатки
Мое приложение для Windows Mobile (аналог игры Lines)
Перспективы развития
Использованные источники
Вместо введения
Программирование мобильных телефонов было интересно мне по двум причинам: во-первых, эффективно программировать их значительно сложнее чем компьютер, из-за ограниченности аппаратных ресурсов, во-вторых, здесь присутствует возможность создать приложение, которое «будет всегда с тобой».
Краткое описание технологии
Windows Mobile – это мобильная операционная система, разработанная Microsoft для собственных аппаратных платформ Pocket PC (коммуникатор) и Smartphone. Существуют три версии операционной системы для различных программно-аппаратных платформ [1]:
- Windows Mobile Professional – для смартфонов с сенсорным экраном и функцией мобильного телефона (платформа Pocket PC);
- Windows Mobile Classic – для карманных персональных компьютеров (платформа Pocket PC);
- Windows Mobile Standard – для смартфонов с функцией мобильного телефона, но без сенсорного экрана (платформа Smartphone).
Операционная система Windows Mobile имеет некоторое сходство с традиционной Windows, в частности сохраняет аналогичную Windows NT файловую систему и структуру папок, содержит мобильные версии популярных программ от Microsoft: Microsoft Office, Media Player, Internet Explorer. Однако следует отметить, что Windows NT и Windows Mobile это два разных семейства операционных систем, программы для них не совместимы друг с другом, кроме того, даже программы для Windows Mobile, написанные для аппаратных платформ Pocket PC и Smartphone не совместимы друг с другом, поскольку последняя платформа предполагает кнопочное управление устройством, что характерно для старых телефонов.
История развития
Перичислим коротко основные версии системы в хронологическом порядке [1]:
- Pocket PC 2000 (первая версия Windows Mobile). Выпущена 19 апреля 2000 года на основе Windows CE 3.0. Это был дебют, впоследствии операционную систему назвали Windows Mobile. Первоначально Pocket PC была похожа на операционные системы Windows 98 и Windows Me;
- Pocket PC 2002, основанная на Windows CE 3.0. Нацелена на бесклавиатурные Pocket PC устройства с разрешением 320х240. Впервые появляется поддержка устройств без сенсорного экрана, что рождает появление первых устройств типа «Смартфон» на Windows Mobile;
- Windows Mobile 2003 (Pocket PC 2003). Вторая версия, основанная на Windows CE 4.20, была выпущена 23 июня 2003 года и шла в трёх редакциях: Pocket PC 2003 for Pocket PC, Pocket PC 2003 Phone Edition и Pocket PC 2003 for Smartphone;
- Windows Mobile 5.0 (кодовое имя Magneto) – выпущена 9 мая 2005 года. Основана на Windows CE 5.0 и использует .NET Compact Framework 1.0 SP2. Windows Mobile 5.0 была впервые представлена на конференции Mobile and Embedded Developers Conference 2005 в Лас-Вегасе 9-12 мая 2005 года.
- Windows Mobile 6 – появилась 12 февраля 2007. Основана на Windows CE 5.2 (кодовое название Crossbow). Представлена на выставке 3GSM. Доступна в трёх редакциях: Windows Mobile 6 Classic – для КПК, Windows Mobile 6 Professional – для коммуникаторов, Windows Mobile 6 Standard – для смартфонов. Это текущая и самая распространенная версия.
Основные возможности
Нас будут интересовать, прежде всего, возможности, доступные при программировании для Windows Mobile. Большим шагом вперед здесь стал выход системы Windows Mobile 5.0, поддерживающей платформу .NET Compact Framework, что значительно облегчило создание программ для смартфонов и коммуникаторов под управлением Windows Mobile (программы для предыдущих версий приходилось писать с помощью Windows API, что занимало довольно много времени и сил, хотя и способствовало высокой производительности приложений).
Программирование на платформе .NET Compact Framework открывает разработчикам доступ к написанию приложений на языках высокого уровня, таких как C# и Visual Basic Net, что значительно ускоряет процесс написания кода по сравнению с программированием на мощном, но достаточно громоздком и сложном языке С++. Среди новшеств Windows Mobile 5.0 (с точки зрения программиста) следует отметить [3]:
- Появление новых API, связанных с отображением графики, управлением контактами и взаимодействием с GPS;
- Улучшение технологии передачи данных, в том числе приема и посылки SMS, телефонных звонков;
- Продолжение стирания граней между между КПК и мобильными телефонами: код написанный для КПК, легко портируется на смартфоны (все же это не означает совместимость);
- Совершенствование средств разработки приложений для Windows Mobile: переработан эмулятор, SDK интегрирован в среду разработки Visual Studio, улучшен отладчик ошибок.
В Windows Mobile 6 также появилось много усовершенствований: улучшена поддержка Wi-Fi и BlueTooth,
появился новый интерфейс взаимодействия с GPS, переработан алгоритм синхронизации с ПК.
Достоинства и недостатки
Основным достоинством Windows Mobile (опять же с точки зрения разработчика) можно назвать легкость создания программ для этой платформы, благодаря хорошей поддержке со стороны Microsoft (доступность и высокое качество документации, хорошие средства разработки). Пожалуй единственным недостатком является недоступность кода самой системы, что делает технологию значительно менее расширяемой по сравнению с открытыми системами, основанными на Linux, такими как например Google Android.
Мое приложение для Windows Mobile (аналог игры Lines)
|
Рисунок 1 – Lines98 в Windows |
Разработанное мной приложение для Windows Mobile представляет собой упрощенный аналог хорошо известной игры Lines (см. рис. 1). Кратко опишу правила оригинальной игры:
- Игра происходит на поле размером 9х9 клеток;
- в начальной позиции на поле в случайном порядке выбрасываются шары 6 фиксированных цветов;
- ход игрока заключается в перемещении любого шара на какую-либо свободную позицию (перемещение возможно только в случае, если существует маршрут шара от начальной до конечной клетки, состоящий из набора горизонтальных и вертикальных переходов между клетками);
- если после хода игрока на поле образуется горизонталь, вертикаль или диагональ из не менее чем 5 шаров одного цвета, эти шары удаляются с поля и игрок получает 5 очков;
- в противном случае на поле выбрасывабтся случайным образом 3 шара;
- когда все поле заполняется шарами – игра заканчивается;
- цель игры – как можно дольше удерживать поле пустым (набрать как можно больше очков).
В мою программу по сравнению со стандартной игрой были внесены следующие упрощения:
- Количество цветов ограничено до 5;
- путь переставляемого шара не анализируется (любой шар всегда может быть перемещен на любое свободное поле);
- удаляются только шары одного цвета, выстроенные по горизонатли или по вертикали (не более 5
шаров);
- после того как игрок набирает 200 очков, на поле после каждого хода выбрасываются уже 4, а не
3 шара для того, чтобы игра не была бесконечной.
Цвет и расположение выбрасываемых шаров как и в стандартной игре выбирались случайно. Мной также были реализованы возможности указания имени игрока, для сохранения лучших результатов в таблице рекордов. Кроме того был разработан ASP-скрипт для обработки таблицы рекордов с помощью Web-сервиса: на сервере хранится глобальная таблица рекордов игры, которая пополняется результатами лучших игр клиентов (к сожалению, проверить эту часть в реальных условиях мне не довелось).
Для создания игры была использована среда разработки Microsoft Visual Studio 2008. Эта среда предоставляет широкие возможности для создания приложений для мобильных устройств. В частности поддерживается создание проектов для КПК и смартфонов на основе Windows Mobile 5.0 c использованием платформ .Net Compact Framework версий 3.5 и 2.0, а также для более ранних версий Windows Mobile. Возможности среды могут быть расширены за счет установки дополнительных SDK и эмуляторов.
Для разработки приложения мной был выбран язык программирования С# и платформа .Net Compact Framework версии 3.5 (кроме выбранного мной языка С#, возможна разработка приложений для мобильных устройств на языках Visual Basic и Visual C++).
Для проверки и тестирования приложений (не прерывая процесс разарботки) используется набор эмуляторов, которые довольно точно моделируют выполнение программы на реальном устройстве. На рис. 2 можно видеть результат запуска игры LinesMobile на эмуляторе USA Windows Mobile 5.0 Pocket PC R2.
|
|
Рисунок 2 – Запуск игры LinesMobile на эмуляторе Windows Mobile 5.0
|
Рассмотренный вариант игры реализован для смартфонов под управлением WindowsMobile и пердполагает
взаимодействие с пользователем с помощью клавиатуры телефона, однако он может быть легко портирован на КПК с сенсорным экраном, путем переработки средств взаимодействия с пользователем.
В процессе разработки игры LinesMobile можно выделить 3 этапа.
Первый этап – проектирование логики игры, включает в себя создание и кодирование упрощенного алгоритма оригинальной игры (был описан выше). Сводится к реализации матричного представления игрового поля, выбросу случайных шаров в случайные позиции (с помощью генерации случайных чисел), перемещению шара пользователем (изменение состояния ячеек матрицы) и поиску линий шаров на игровом поле (одинаковых значений смежных ячеек матрицы).
Второй этап – визуализация игры, включает в себя прорисовку игрового поля и шаров с помощью графических примитивов. Для прорисовки были использованы функции .Net Compact Framework, аналогичные функциям библиотеки GDI+ в стандартной платформе .Net Framework. Следует отметить, что эти функции довольно просты и обеспечивают, при этом, довольно высокое качество прорисовки.
Третий этап – реализация взаимодействия с пользователем в интерактивном режиме. Реализован с помощью увязки
шагов алгоритма с их визуализацией при воздействии пользователя на элемены управления приложения.
Все 3 этапа довольно просты в реализации за счет использования объектно-ориентированных возможностей языка C# и поддержки стандартного для Windows визуального программирования. Тем не менее, возможно дальнейшее совершенствование игры, как в алгоритмическом плане, так и что касается интерфейса пользователя. Наиболее перспективным направлением доработки игры представляется реализация анализа маршрута перемещения шаров при перестановке, что алгоритмически эквивалентно представлению шаров на игровом поле в виде графа и поиску маршрута между его вершинами. Разработанная игра LinesMobile может расматриваться как полноценный аналог игры Lines для ПК с незначительными ограничениями.
Дальнейшие перспективы развития Windows Mobile
Несмотря на успех системы Windows Mobile в дальнейшем Microsoft планирует постепенно прекращать ее дальнейшую разработку и поддержку. Это решение основано отнюдь не на бесперспективности системы, а на появлении качественно более новых аппаратных решений для мобильных устройств, что требует и переработки подхода к разработке новых мобильных операционных систем. Приемником Windows Mobile в ближайшем будущем должна стать уже разработанная система Windows Phone 7 (вышла 11 октября 2010 года [2]). Эта операциооная система достаточно требовательна к аппаратуре, в частности тактовая частота процессоров устройств должна быть не ниже 1 Ггц [2], что уже сопоставимо с маломощными ПК. Что касается программирования для смартфонов, Microsoft и далее совершенствует платформу .NET Compact Framework и среду разработки Visual Studio, предоставляя программистам новые и более удобные возможности для создания приложений самой различной направленности.
Список источников
- Windows Mobile – Википедия. [Электронный ресурс]: http://ru.wikipedia.org/wiki/Windows_Mobile
- Windows Phone 7 – Википедия. [Электронный ресурс]: http://ru.wikipedia.org/wiki/Windows_Phone_7
- Климов А. П. Программирование КПК и смартфонов на .NET Compact Framework — Спб.: Питер, 2007. — 320 стр. с ил.
- Иво Салмре. Программирование мобильных устройств на платформе .NET Compact Framework.: Пер. с англ. – М.: Издательский дом "Вильямс", 2006. – 736 стр.
|