52628.fb2
В этой главе речь пойдет об утилитах, необходимых для успешного программирования приложений для мобильных устройств. Пожалуй, самой главной из этих утилит является программный эмулятор Device Emulator. Кроме того, в состав Visual Studio 2005 входит несколько вспомогательных утилит, позволяющих выполнять различные операции на реальном устройстве или на эмуляторе.
При создании приложений для КПК и смартфонов необходимо проверять работу написанной программы на устройстве, которое сильно отличается от настольного компьютера. Когда вы пишете стандартное Windows-приложение, вы можете сразу увидеть его работу, запустив соответствующий исполняемый файл. Написав программу для мобильных устройств, необходимо протестировать ее на соответствующем устройстве, так как ваш настольный компьютер здесь уже не поможет. Но даже если разработчик еще не приобрел карманный компьютер или смартфон под управлением Windows Mobile, то он все равно может тестировать свои приложения. В этом случае надо проверять их работоспособность на специальных эмуляторах.
Следует отметить, что в некоторых случаях эмулятор все-таки не сможет выполнить эту задачу. Например, он не поможет проверить работу кода, который использует возможности инфракрасной связи. И, тем не менее, эмулятор является очень мощным и удобным инструментом для отладки приложений.
Надо сказать, что качество и возможности эмулятора постоянно улучшаются и совершенствуются. Разработчики, которые программировали еще на eMbedded Visual Basic и Visual Studio 2003, без сомнения, обратят внимание на возросшую скорость работы эмулятора, его надежность и удобство. Эмулятор, поставляемый с Visual Studio 2005, имеет улучшенную поддержку общих папок, программы синхронизации ActiveSync и последовательных портов. Также эмулятор поддерживает альбомную и книжную ориентацию. Раньше об этом приходилось только мечтать. Особенно приятно отметить тот факт, что можно дополнительно скачать локализованные версии эмуляторов. Например, все примеры для Windows Mobile 5.0 тестировались исключительно на русской версии эмулятора.
Итак, при написании своей программы у разработчика есть возможность выбирать, где тестировать свой код. Как правило, программу сначала проверяют на эмуляторе. Это позволяет быстро исправить ошибки и устранить недочеты. А уже окончательную версию программы можно и нужно проверить на реальном устройстве.
Рассмотрим вариант запуска эмулятора и его настройки. Сначала требуется создать или открыть проект, предназначенный для мобильного устройства, например, первую программу «Здравствуй, мир», которая создавалась в главе 2. После выполнения команды меню Debug►Start Debugging
среда разработки Visual Studio отображает диалоговое окно Deploy
(рис. 8.1).
Рис. 8.1. Запуск эмулятора
В диалоговом окне отображается список, в котором содержатся одно реальное устройство и четыре эмулятора разных типов устройств.
Нужно выбрать любой эмулятор из списка. Стандартным выбором в данном случае является значение Pocket PC 2003 SE Emulator
. Нужно выделить строку с выбранным эмулятором и нажать кнопку Deploy
. Через несколько секунд на экране компьютера появится эмулятор карманного компьютера, в котором будет запущено выбранное приложение. Программист может работать с тестируемой программой так же, как и на реальном устройстве. Кроме того, можно оставить в покое программу и запустить любое приложение, которое есть на этом эмуляторе.
Списки эмуляторов на каждом компьютере разработчика могут различаться, так как можно скачать и установить дополнительные эмуляторы. Когда будут рассматриваться примеры для устройств под управлением Windows Mobile 5.0, диалоговое окно будет содержать уже другие эмуляторы.
После того как тестирование программы будет завершено, вам надо остановить выполнение программы при помощи команды меню Stop debugging
в среде разработки. При этом не стоит закрывать само окно эмулятора, как часто делают начинающие программисты. Если оставить эмулятор работать, то это позволит потратить меньше времени на повторную загрузку эмулятора при следующей отладке программы.
Если ваша программа имеет код для закрытия приложения this.Close(), то режим отладки автоматически остановится и выполнять команду меню Stop debugging не понадобится.
Попробуем теперь поработать с различными настройками эмулятора. Для начала следует выполнить команду меню Tools►Options
. В открывшемся диалоговом окне Options
надо выбрать строку Device Tools
, а в ней активировать пункт Devices
. Затем в списке Devices
надо выбрать элемент Pocket PC 2003 SE и нажать кнопку Properties
(рис. 8.2).
Рис. 8.2. Окно настроек эмулятора
На экране появится новое диалоговое окно Pocket PC 2003 SE Properties
(рис. 8.3). Обратите внимание на то, что по умолчанию программа устанавливается в папку Program Files
.
Рис. 8.3. Окно свойств эмулятора
После ознакомления со свойствами эмулятора нужно закрыть все диалоговые окна и вернуться в главное окно среды разработки. Там надо выполнить команду меню Tools►Device Emulator Manager
. На экране откроется новое диалоговое окно, в котором будут перечислены все имеющиеся эмуляторы (рис. 8.4).
Рис. 8.4. Список установленных эмуляторов
Надо выбрать из списка элемент Pocket PC 2003 SE Emulator
, а затем выполнить команду меню Actions►Connect
. Менеджер эмуляторов загрузит выбранный эмулятор. На экране появится специальный значок, который сигнализирует об установленном соединении. Затем нужно выполнить команду меню Actions►Cradle
. Если операция пройдет успешно, то значок состояния эмулятора изменится. Это означает, что эмулятор КПК соединен с виртуальной док-станцией. Теперь можно синхронизировать данные с помощью программы синхронизации ActiveSync
. По завершении операции нужно выполнить команду меню Actions►Uncradle
.
Все модели карманных компьютеров и смартфонов имеют возможность увеличения объема памяти при помощи различных карточек памяти. Дополнительный объем дискового пространства используют для хранения фильмов, фотографий и других документов. Особенно это актуально для пользователей устройств под управлением Pocket PC 2003, так как после перезагрузки устройства все данные на устройстве стираются. Эмулятор позволяет использовать любую папку настольного компьютера в качестве карточки памяти. Для выбора подключаемой папки нужно в окне эмулятора выполнить команду меню File►Configure
и на вкладке General
указать соответствующую папку в пункте Shared Folder
(рис. 8.5).
Рис. 8.5. Эмуляция карточки памяти
После того как соответствующая папка будет подключена, можно с помощью стандартной программы File Explorer, входящей в состав Windows Mobile, убедиться, что у устройства теперь имеется карточка памяти, которая представлена как папка Storage Card
(рис. 8.6).
Рис. 8.6. Папка Storage Card
Эмулятор позволяет легко менять ориентацию экрана. Достаточно перейти на вкладку Display
после выполнения команды меню File►Configure
и выбрать нужный режим в разделе Orientation
(рис. 8.7).
Рис. 8.7. Настройка ориентации экрана
Если выбрать соответствующее значение для поворота экрана, то эмулятор повернет изображение устройства (но не экрана) на 90° (рис. 8.8).
Рис. 8.8. Вращение устройства
Совсем не обязательно при отладке своих программ для карманных компьютеров или смартфонов копировать программы на данные устройства, запускать их и проверять работоспособность приложений. Гораздо удобнее использовать эмуляторы соответствующих устройств. Несомненно, вы так и поступали при изучении предыдущих примеров. Но все описанные примеры не использовали ресурсы Интернета. Однако сейчас количество программ, использующих сетевые возможности, стремительно растет. К счастью, эмулятор приходит на выручку и в этой ситуации. Если ваш компьютер, на котором установлен эмулятор, имеет соединение с Интернетом, то можно подключить к Сети и сам эмулятор. Настройка не очень сложна, и все этапы приведены в следующем списке.
1. Создать новый проект в Visual Studio 2005.
2. Запустить программу ActiveSync. Возможно, она неактивна, и ее пиктограмма располагается в области уведомлений. В этом случае надо щелкнуть правой кнопкой мыши на этом значке и выполнить команду контекстного меню Открыть Microsoft ActiveSync
.
3. Вернуться в среду разработки Visual Studio 2005 и выполнить команду меню Tools►Device Emulator Manager
. На экране появится диалоговое окно Device Emulator Manager
.
4. Щелкнуть правой кнопкой мыши на соответствующем эмуляторе и выполнить команду контекстного меню Connect
. На экране появится соответствующий эмулятор.
5. Вернуться в диалоговое окно Device Emulator Manager
и снова щелкнуть правой кнопкой на выбранном ранее эмуляторе, а затем выполнить команду Cradle
.
6. В диалоговом окне Device Emulator Manager
у выбранного эмулятора появится значок, показывающий, что эмулятор теперь подключен к системе настольного компьютера.
7. Автоматически появится сообщение от Microsoft ActiveSync о том, что установлено соединение (рис. 8.9).
Рис. 8.9. Сообщение ActiveSync
8. В этом окне нужно нажать кнопку OK
.
9. На экране появится окно Мастер синхронизации
(рис. 8.10).
Рис. 8.10. Окно ActiveSync
10. Так как сейчас синхронизация не нужна, то следует нажать кнопку Cancel
.
11. Появится основное окно программы Microsoft ActiveSync, сигнализирующее, что установлено соединение с компьютером.
12. Закрыть окно программы Microsoft ActiveSync. Программа продолжает работать в фоновом режиме. В области уведомлений должна отображаться зеленая пиктограмма.
13. В очередной раз вернуться в окно программы Device Emulator Manager
и закрыть его. Программа также продолжает работать в фоновом режиме, а ее пиктограмма тоже появится в области уведомлений.
14. Настало время настройки эмулятора для доступа в Интернет. Нужно щелкнуть правой кнопкой на зеленом значке ActiveSync и выполнить команду контекстного меню Открыть Microsoft ActiveSync
. Затем надо выполнить команду меню File►Connection Settings
и выбрать режим This computer is connected to The Internet
, после чего останется только нажать кнопку OK
.
15. В эмуляторе надо нажать кнопку Start
и щелкнуть на пиктограмме Internet Explorer. В результате будет запущен стандартный браузер. В адресной строке можно указать URL любого существующего сайта. Эмулятор должен загрузить выбранный сайт.
Теперь компьютер соединен с Интернетом через эмулятор. Это позволит отлаживать программы, использующие соединение с Интернетом.
Разработчик может также создать собственный внешний вид эмулятора. Соответствующую информацию можно найти в справочной системе. Описание внешнего вида эмулятора хранится в XML- файлах, которые описывают внешний вид устройства. Если нужно, чтобы эмулятор был точно похож на ваше устройство, надо подготовить соответствующие рисунки устройства и указать их в файле. Затем в настройках эмулятора можно указать путь к новому файлу. И тогда эмулятор будет выглядеть именно так, как ваше собственное устройство.
Эмулятор поставляется вместе с Visual Studio 2005. Эмуляторы для тестирования программ на новых устройствах, таких как Windows Mobile 5.0, также интегрируются в оболочку Visual Studio. И чтобы установить эмулятор на новой машине, раньше приходилось устанавливать весь пакет Visual Studio 2005.
Разработчики на форумах часто спрашивали: можно ли установить эмулятор как отдельную программу на компьютере? До недавнего времени ответ был отрицательным. Но наконец-то Microsoft прислушалась к просьбам разработчиков и выпустила эмулятор в виде отдельного продукта. Более подробную информацию об этом можно найти на веб-странице www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en.
Работы над улучшением эмулятора не прекращаются. На странице «Microsoft Device Emulator 2.0 Beta — Community Technology Preview», которая располагается по адресу http://www.microsoft.com/downloads/details.aspx?FamilyID=13f5de85-30cd-4506-9c5b-a2068fa1ee9e&DisplayLang=en, выложена бета-версия эмулятора, которая будет работать с будущей версией Windows СЕ 6.0. В новой версии обещана еще большая скорость работы эмулятора и реализованы дополнительные возможности.
В состав Visual Studio 2005 входят несколько утилит, которые могут пригодиться разработчикам программ для мобильных устройств. Если открыть группу программ Visual Studio Remote Tools, то можно увидеть, что в ней расположены утилиты, перечисленные в следующем списке:
□ Remote File Viewer;
□ Remote Heap Walker;
□ Remote Process Viewer;
□ Remote Registry Editor;
□ Remote Spy;
□ Remote Zoom-in.
Если вы собираетесь серьезно посвятить себя программированию для мобильных устройств, то необходимо изучить все эти программы. Но сейчас будут рассмотрены три наиболее важные утилиты.
Утилита Remote Zoom-in позволяет получить снимок экрана устройства или эмулятора на компьютере разработчика. Большинство иллюстраций к данной книге были сделаны с помощью данной программы.
Использовать эту утилиту очень просто. Перед ее запуском необходимо подключить к компьютеру устройство или эмулятор. При запуске программа предложит вам список доступных устройств, с которых можно получить снимок экрана (рис. 8.11).
Рис. 8.11. Выбор устройства для получения снимка экрана
После нажатия кнопки OK
программа автоматически установит связь с выбранным устройством и загрузит текущее изображение экрана. Если необходимо получить новое изображение с экрана устройства, то нужно выполнить команду меню File►New Bitmap
.
Утилита Remote Zoom-in сохраняет экранные снимки в формате BMP-файлов. Функциональные возможности программы сильно урезаны, пользователь может вырезать часть изображения, изменить его размер или сделать копию. Но от этой программы и не требуется больших возможностей. Сохранив изображение в файле, при необходимости можно редактировать его в любом графическом редакторе.
Утилита Remote File Viewer является аналогом стандартного Проводника, входящего в состав Windows XP. С помощью этой утилиты пользователь может просматривать содержимое папок устройства или эмулятора, а также копировать файлы из устройства на настольный компьютер и наоборот.
При запуске утилита сначала отображает список доступных устройств, а затем устанавливает связь с выбранным устройством.
Еще одной полезной утилитой является редактор реестра Remote Registry Editor. С помощью данного редактора пользователь может изменять, удалять и создавать новые записи в реестре. В одной из следующих глав будет рассказано о программном изменении значений реестра с помощью функций Windows API. С помощью этой утилиты можно контролировать работу этих функций.