Сайт переехал на новое место!

Внимание, сайт переехал на новое место. Раздел для Windows Mobile теперь располагается по адресу http://netsources.narod.ru/cf.htm.

Что нового для разработчиков в Windows Mobile 6

Февраль 2007

Microsoft выпустила новую платформу Windows Mobile 6, в которой появились новые возможности. Мы рассмотрим новые возможности Windows Mobile, а также новые инструменты, которые появились в Windows Mobile 6 Software Development Kit (SDK).

В Windows Mobile 6 стало еще проще разрабатывать приложения для бизнеса, использовать разные устройства и т.д.

Теперь проще разрабатывать одно приложение, которое запускается на разных устройствах

Enhanced User Experience

Мы привыкли, что устройства имели названия Pocket PC, Smartphone и Pocket PC Phone Edition. С выходом операционной системы Windows Mobile 6 названия поменялись.

Таблица 1. Соответствие между устройствами Windows Mobile 5.0 и Windows Mobile 6

Windows Mobile 5.0 Windows Mobile 6

Windows Mobile 5.0 for Smartphone

Windows Mobile 6 Standard

Windows Mobile 5.0 for Pocket PC Phone Edition

Windows Mobile 6 Professional

Windows Mobile 5.0 for Pocket PC

Windows Mobile 6 Classic

Pocket PC и Pocket PC Phone Edition имеют сенсорный экран, а Smartphone такого экрана не имеет. Теперь для разработки под разные типы устройств существует два Windows Mobile 6 SDK: Windows Mobile 6 Professional SDK служит для разработки приложений для устройств с сенсорным экраном (КПК или Pocket PC Phone Edition) и Windows Mobile 6 Standard SDK для разработки приложений для смартфонов. В виде таблицы это выглядит следующим образом.

Таблица 2. Соответствие между Windows Mobile 6 и Windows Mobile 6 SDK

Операционная система Windows Mobile 6 Соответствующий Windows Mobile 6 SDK

Windows Mobile 6 Standard

Windows Mobile 6 Standard SDK

Windows Mobile 6 Professional

Windows Mobile 6 Professional SDK

Windows Mobile 6 Classic

Windows Mobile 6 Professional SDK

Устройства с сенсорным экраном (Windows Mobile 6 Classic и Windows Mobile 6 Professional) используют Windows Mobile 6 Professional SDK; а устройства, не имеющие сенсорного экрана (Windows Mobile 6 Standard) используют Windows Mobile 6 Standard SDK.

Windows Mobile 6 обеспечивает отличную совместимость с программами Windows Mobile 5.0, которые будут нормально работать без какой-либо модификации. Только надо иметь в виду, что если приложение использовало недокументированные функции API, то оно может иметь проблемы при запуске в Windows Mobile 6.0.

Подобная совместимость позволяет писать программы сразу для обоих типов устройств под управлением Windows Mobile 5.0 и Windows Mobile 6. Более того, приложения будут лучше запускаться на Windows Mobile 6 благодаря многочисленным улучшениям, например встроенные в ROM .NET Compact Framework 2.0 и SQL Server Compact Edition.

Windows Mobile 6 SDK имеет в своем составе новые утилиты и библиотеки, необходимые для разработки мобильных приложений при помощи Visual Studio 2005.

Утилиты

Рассмотрим подробнее новые утилиты, которые появились в Windows Mobile 6 SDK.

Device Emulator 2.0

Эмуляторы играют важную роль при разработке мобильных приложений, позволяя тестировать программу без необходимости иметь реальное устройство. Device Emulator 2.0 является частью Windows Mobile 6 SDK и является настоящим эмулятором процессора ARM.

При установке Windows Mobile 6 SDK старый Device Emulator 1.0, который входит в состав Visual Studio 2005, автоматически заменяется на Device Emulator 2.0. В результате, все ваши старые проекты теперь будут использовать Device Emulator 2.0 и иметь возможность использовать новые преимущества и новые возможности, которые предоставляет Device Emulator 2.0.

Быстрое выполнение

Device Emulator 2.0 был значительно оптимизирован. Скорость работы для отдельных приложений может возрасти до 40 процентов по сравнению с Device Emulator 1.0.

Больше эмулируемых устройст

Device Emulator 2.0 поддерживает новые форм-факторы устройств. Рис. 1 показывает новый форм-фактор с экраном 320x320, который появился в Windows Mobile 6.

Новый форм-фактор в Windows Mobile 6 (320x320)

Device Emulator 2.0 по-прежнему поддерживает все старые эмуляторы PC 2003SE, Smartphone 2003SE, Windows Mobile 5.0 Pocket PC и Windows Mobile 5.0 Smartphone.

Эмуляция состояния зарядки

Настоящие мобильные устройства большую часть времени работают от батарей и только иногда подключены к розетке. Если в устройстве уровень заряда батарей становится слишком малым, приложение должно совершать некоторые действия для избежания потери данных при полной разрядке. Теперь у вас есть возможность тестировать этот эффект низкого заряда при помощи эмуляции состояния зарядки в Device Emulator 2.0.

Как вы видите, настройки позволяют вам выбрать режим между работой на аккумуляторах или быть подключенным к электричеству (снять галочку Battery:). При использовании режима работы от батарей, вы можете выбрать степень зарядки устройства. Эмулятор ведет себя как реальное устройство и показывает те же значки и сообщения, а также генерирует нужные события State and Notifications Broker.

Эмуляция телефонного профиля

Device Emulator 2.0 поддерживает три новых телефонных профиля: наушники, микрофон с громкоговорителем и автомобильный комплект. Если вы проставите соответствующие галочки, эмулятор будет вести себя так, как если бы вы подключили к устройству наушники, включили микрофон или подключили автомильный комплект.

Эмулятор мобильного телефона (Cellular Emulator)

Очень часто приложения должны задействовать коммуникационные возможности. Вы можете просто выключить музыку, которую проигрывает ваше приложение, когда поступает входящий звонок или что-то другое.

В этом случае вам поможет Cellular Emulator. Cellular Emulator позволяет тестировать приложение в разных ситуациях.

Cellular Emulator является очень удобной утилитой, позволяя делать исходящие звонки, получать входящие звонки, посылать SMS. Также эмулятор позволяет работать с SIM-картой и сетями 2G и 3G.

Чтобы использовать Cellular Emulator с Device Emulator, вам необходимо связать Cellular Emulator с Device Emulator. Сделать это просто.

  1. Обратите внимание на номер COM-порта в Cellular Emulator; COM4 на рисунке 5.
  2. Откройте окно Emulator Properties, в меню Device Emulator выберите File, и щелкните на Configure…
  3. В окне Emulator Properties щелкните на вкладке Peripherals.
  4. Введите номер COM-порта из Cellular Emulator в Serial Port 0 как показано на рисунке 6. Если вы не видите номер COM-порта в выпадающем списке, вы можете ввести его сами.
  5. Закройте окно Emulator Properties при помощи кнопки OK.
  6. Сделайте мягкую перезагрузку - File - Reset - Soft.

Когда эмулятор завершит процесс перезагрузки, вы увидите, что в эмуляторе теперь доступны мобильные сервисы.

FakeGPS

В мире все большую популярность набирает Global Positioning System (GPS) . Windows Mobile 6.0 обзавелась новой утилитой FakeGPS, которая позволяет легко тестировать приложения, связанные с GPS без необходимости иметь реальное устройство GPS. Вместо этого, вы просто создаете текстовый файл, содержащий список сообщений GPS NMEA, копируете файл в папку \Program Files\FakeGPS\GPS на вашем устройстве и запускаете FakeGPS. Вот небольшой пример такого файла для FakeGPS

 
$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77
$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42
$GPGSV,3,3,9,134,0,0,0*46
$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21
$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75
$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A

Работая в связке с GPS Intermediate Driver, FakeGPS использует сообщения из текстового файла в приложении, которое пользуется данными GPS. Так как утилита FakeGPS работает напрямую с GPS Intermediate Driver, вы можете тестировать ваше приложение на реальном устройстве и в эмуляторе без модификации программы. Чтобы активировать данные FakeGPS, в утилите FakeGPS выберите желаемый входной файл и выберите опцию Enable как на рис 7.

Figure 7. Setting up the FakeGPS feed to enable testing of location-enabled applications

Security Configuration Manager

Device Security Manager запускается на вашем настольном компьютере и показывает текущие настройки безопасности устройства или эмулятора, которые соединены с вашим компьютером через ActiveSync в Windows XP или Windows Mobile Device Center (WMDC) в Vista. Выводимая информация включает политики безопасности устройства, список индивидуальных настроек и список сертификатов, установленных в устройстве.

Device Security Manager позволяет настроить эмулятор с общими политиками безопасности, позволяя протестировать эффект с различными политикaми. Рисунок 8 показывает Device Security Manager после настройки эмулятора, имеющим политику безопастности one-tier prompt security policy.

Используя Device Security Manager, вы можете воспользоваться преимуществами простоты тестирования приложений при различных настройках безопасности.

CabSignTool

Прежде чем распространять вашу программу, вы обычно должны подписать ваш исполняемый файл и установочные файлы с помощью сертификатов, чтобы определить принадлежность программы вашей организации. В целях безопасности, все исполняемые файлы приложения (включая *.dll и *.exe) и CAB-файлы должны быть подписаны. Утилита CabSignTool является утилитой командной строки, которая упрощает процесс подписи программ.

Вы просто создаете исполняемый файл и установочный CAB-файл и запускаете утилиту CabSignTool.

Hopper

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

Утилита Hopper пытается воспроизвести быстрые щелчки в различных местах вашего приложения. Это является стрессом для программы и показывает ее устойчивостьs.

Local Server Framework

Набор инструментов и классов Local Server Framework созданы для простого тестирования приложений, которые используют соединения с удаленным сервером. .Local Server Framework позволяет установить виртуальную сеть и сервер, которые получают сетевые вызовы вашего приложения и возвращают необходимые данные.

Примеры

В состав Windows Mobile 6 SDK входят несколько полезных примеров.

UILayout

Этот пример показывает, как создать приложение, которое динамически подстраивается к форм-фактору устройства. В этом примере используются docking, anchoring, и другие возможности. Также в примере используется класс ScreenLib, который позволяет задействовать различные возможности экрана.

RingtoneManager

Пример показывает использование новых мультимедийный функций Windows Mobile 6 API.

BasicRecognition, InkNotes, and InkSerialization

Эти примеры демонстрируют использование WISP Lite APIs. The topics covered include performing text recognition on ink-based input, using ink-based input within an application and storing the ink in a file.

GPS

Этот пример показывает, как использовать GPS Intermediate Driver в приложении.

.NET Compact Framework 2.0

Все устройства Windows Mobile 6.0 включают в себя .NET Compact Framework 2.0 SP1, зашитую в ROM. Это позволяет обойтись без развертывания приложения, а просто скопировать исполняемый файл.

Улучшенный пользовательский интерфейс

Элементы управления Windows Forms

В .NET Compact Framework 2.0 появились новые элементы управления MonthCalendar и DateTimePicker Controls (описаны в моей книге).

WebBrowser Control

Для приложений, которые используют HTML-текст, .NET Compact Framework 2.0 включает в себя элемент WebBrowser.

Figure 10. The WebBrowser control displaying the Windows Live mobile search page

Элемент Notification

Элемент Notification позволяет выводить сообщения на экран (как при низком заряде батареи), не мешая пользователю работать с текущей программой.

Другие элементы

Также появились новые элементы StatusBar, DataGrid для смартфонов, UserControl-derived custom controls и другие.

Поддержка для разных форм-факторов

Docking a control aligns the control with the edge of its parent control. Например, если вы прикрепляете элемент к левому краю родительского объекта и заполняете все левую часть, как показано на рисунке, то при изменении размеров родителя, ваш элемент автоматически изменить свои размеры, чтобы сохранить свою зависимость от левого края родителя.

Figure 11. A control docked to the top edge of its parent control shown on a portrait and landscape display

Anchoring a control показывает, что один или более краев элемента должны сохранять фиксированное расстояние от заданных краев родительского элемента. В зависимости от размеров устройства, элемент автоматически устанавливает свои размеры и позицию относительно родителя. Рисунок 12 показывает TextBox, который связан с левым, правым и нижним краями родительского объекта.

Figure 12. A control anchored to left, right, and bottom edges of its parent control shown on a portrait and landscape display

В некоторых случаях может быть не практично изменять размеры или перемещать элементы из-за изменения размеров экрана. В этом случае, лучшее решение - позволить пользователю дать возможность скроллинга формы. .NET Compact Framework 2.0 автоматически определяет, если какие-то элементы вышли за пределы экрана и добавляет полосы прокрутки приложению.

Клавиатура

Еще одно важное улучшение в .NET Compact Framework 2.0 - лучшая поддержка устройств, имеющих клавиатуру. В .NET Compact Framework 2.0 все элементы теперь получают события KeyUp, KeyDown и KeyPress, что позволяет осуществлять различные операции. Добавлено новое свойство Form.KeyPreview, что позволяет также выбрать, будете ли вы управлять событиями клавиатуры для элементов или вы хотите обрабатывать все события элементов на форме.