Внимание, сайт переехал на новое место. Раздел для Windows Mobile теперь располагается по адресу http://netsources.narod.ru/cf.htm.
Февраль 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 является частью 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 является очень удобной утилитой, позволяя делать исходящие звонки, получать входящие звонки, посылать SMS. Также эмулятор позволяет работать с SIM-картой и сетями 2G и 3G.
Чтобы использовать Cellular Emulator с Device Emulator, вам необходимо связать Cellular Emulator с Device Emulator. Сделать это просто.
Когда эмулятор завершит процесс перезагрузки, вы увидите, что в эмуляторе теперь доступны мобильные сервисы.
В мире все большую популярность набирает 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
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, вы можете воспользоваться преимуществами простоты тестирования приложений при различных настройках безопасности.
Прежде чем распространять вашу программу, вы обычно должны подписать ваш исполняемый файл и установочные файлы с помощью сертификатов, чтобы определить принадлежность программы вашей организации. В целях безопасности, все исполняемые файлы приложения (включая *.dll и *.exe) и CAB-файлы должны быть подписаны. Утилита CabSignTool является утилитой командной строки, которая упрощает процесс подписи программ.
Вы просто создаете исполняемый файл и установочный CAB-файл и запускаете утилиту CabSignTool.
Мобильные приложения часто остаются запущенными на устройстве неделями и больше, не будучи закрытыми. И требуется провести тест программы на подобную долгую работу. Для этих целей подойдет утилита Hopper.
Утилита Hopper пытается воспроизвести быстрые щелчки в различных местах вашего приложения. Это является стрессом для программы и показывает ее устойчивостьs.
Набор инструментов и классов Local Server Framework созданы для простого тестирования приложений, которые используют соединения с удаленным сервером. .Local Server Framework позволяет установить виртуальную сеть и сервер, которые получают сетевые вызовы вашего приложения и возвращают необходимые данные.
В состав Windows Mobile 6 SDK входят несколько полезных примеров.
Этот пример показывает, как создать приложение, которое динамически подстраивается к форм-фактору устройства. В этом примере используются docking, anchoring, и другие возможности. Также в примере используется класс ScreenLib, который позволяет задействовать различные возможности экрана.
Пример показывает использование новых мультимедийный функций Windows Mobile 6 API.
Эти примеры демонстрируют использование 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 Intermediate Driver в приложении.
Все устройства Windows Mobile 6.0 включают в себя .NET Compact Framework 2.0 SP1, зашитую в ROM. Это позволяет обойтись без развертывания приложения, а просто скопировать исполняемый файл.
В .NET Compact Framework 2.0 появились новые элементы управления MonthCalendar и DateTimePicker Controls (описаны в моей книге).
Для приложений, которые используют HTML-текст, .NET
Compact Framework 2.0 включает в себя элемент WebBrowser
.
Figure 10. The WebBrowser control displaying the Windows Live mobile search page
Элемент 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
, что позволяет также выбрать, будете ли вы управлять событиями клавиатуры для элементов или вы хотите обрабатывать все события элементов на форме.