скачать книгу бесплатно
Таблица 2.1. Клавиши и соответствующие им десятичные коды
Эмулятор и Platform Manager
Между эмулятором и средой разработки существует соответствующий программный слой. Эта технология обеспечивает взаимодействие среды разработки с реальным устройством или эмулятором. Этот программный слой называется Platform Manager и позволяет среде разработки установить сетевое соединение с устройством (эмулятором), загрузить на него файлы и произвести основные операции отладки на уровне приложения. Сам пакет Platform Manager и вспомогательные инструменты отладки располагаются в каталоге C: \Program Files\ Common Files\Microsoft Shared\Windows CE Tools\Platman\bin\wce420. Каждый из инструментов Platform Manager и каждая среда разработки Microsoft, предназначенная для работы с Pocket PC или Windows CE, имеет в меню команду Configure Windows CE Platform Manager…, которая позволяет настроить запуск нужного эмулятора и в интерактивном режиме отредактировать ключи командной строки.
Теперь следует перейти в папку C: \Program Files\Common Files\Microsoft Shared\ Windows СЕ Tools\Platman\bin\wce420 и запустить программу cefilevw.exe. Эта программа позволяет просматривать папки эмулятора и копировать файлы на эмулятор. Но сейчас следует обратить особое внимание не на функциональность этой программы, а на пункт меню Connection ? Configure Windows СЕ Platform Manager. После выполнения этой команды на экран будет выведено диалоговое окно (рис. 2.3).
Рис. 2.3. Выбор устройства для настройки.
В списке нужно выбрать пункт Pocket PC 2003 Emulator, после чего следует нажать кнопку Properties. На экране появится очередное окно настройки (рис. 2.4).
Рис. 2.4. Окно настройки эмулятора Pocket PC 2003.
В выпадающем списке Transport нужно выбрать значение TCP\IP Transport For Windows CE, а в списке Startup Server выбрать значение Emulator Startup Server. После нажатия на кнопку Configure, которая относится к списку Startup Server, еще одно окно настройки будет выведено на экран (рис. 2.5).
Рис. 2.5. Окно конфигурации стартовых параметров эмулятора.
В этом окне можно выбрать параметры, с которыми будет запускаться эмулятор.
? Параметр Device ? Image позволяет указать, какое ядро эмулятора будет загружено. Разработчик может использовать одно из трех стандартных ядер – Pocket PC 2003 или два ядра Pocket PC 2003 Phone Edition с разными сетевыми устройствами.
? Параметр Video ? Skin позволяет указать, какая обложка будет выбрана для эмулятора. На обложке для Phone Edition есть дополнительные кнопки дозвона и прекращения связи.
? Параметр System ? HostKey позволяет установить клавишу HostKey.
? Параметр Communication позволяет задать параметры связи эмулятора с внешним миром.
• Значение Ethernet позволяет установить NAT. Проблемы настройки Virtual Switch будут рассмотрены позже.
• Значение Serial Port 1 позволяет соединить первый COM-порт эмулятора с реальным портом рабочей станции или маппировать его на файл.
• Значение Serial Port 2 позволяет соединить второй COM-порт эмулятора с реальным портом рабочей станции или маппировать его на файл.
• Значение Parallel Port позволяет соединить параллельный порт эмулятора с реальным портом рабочей станции.
После настройки всех необходимых параметров нужно закрыть окно нажатием кнопки OK. В окне настройки устройства нужно нажать кнопку Test. Это приведет к запуску эмулятора с заданными параметрами, и через две-три минуты будет установлено соединение. Данный факт будет сопровождаться громким звуком, а кнопка Cancel в окне Testing Device Connection сменится кнопкой OK.
Теперь эмулятор настроен и готов к работе.
ActiveSync
ActiveSync – это инструмент, предназначенный для связи мобильного устройства (Pocket PC) с настольным компьютером (рис. 2.6).
Рис. 2.6. Окно ActiveSync.
На рисунке показана настольная часть ActiveSync. На мобильном устройстве, естественно, работает второй компонент этого приложения.
ActiveSync автоматически отслеживает наличие присоединенного к компьютеру мобильного устройства и, при наличии физического соединения, устанавливает связь и выполняет синхронизацию настольного компьютера и Pocket PC. Таким образом, основное назначение ActiveSync – это автоматизированная синхронизация различных баз данных Pocket Outlook и папок на мобильном компьютере с соответствующими базами данных и папками на настольном компьютере. Кроме этого, при помощи ActiveSynс выполняются операции, перечисленные в следующем списке.
1. Резервное архивирование данных и настроек мобильного устройства, с сохранением файла архива на настольном компьютере. Восстановление данных с настольного компьтера на мобильный.
2. Установка и удаление программ на мобильном компьютере, с ведением базы данных установленных программ на настольном компьютере.
3. Импорт и экспорт таблиц баз данных.
Таким образом, ActiveSync является очень полезной программой, и с ней могут взаимодействовать приложения, созданные для работы на мобильном компьютере. Для этого в состав SDK включены соответствующие библиотеки, заголовочные файлы и примеры. Их можно найти в папке C: \Program Files\Windows CE Tools\wce420\POCKET PC 2003\Activesync.
Но есть одна серьезная проблема. По умолчанию ActiveSync упорно не желает работать с эмулятором, как с настоящим устройством. Для того чтобы эмулятор мог установить связь и взаимодействие с ActiveSync настольного компьютера, необходимо предпринять заметные усилия по настройке.
Эмулятор и ActiveSync
Для настройки соединения эмулятора и ActiveSync на стационарном компьютере необходимо проделать последовательность действий, приведенную в следующем списке.
1. Необходимо установить и настроить Microsoft Loopback Adapter.
2. Установить Microsoft.NET Framework 1.1 SDK на стационарный компьютер. Установочный комплект можно взять с сайта Microsoft бесплатно. Если в системе установлена среда Visual Studio.NET, то и SDK тоже установлен.
3. Настроить соответствующим образом Platform Manager.
• Надо убедиться, что при настройке транспорта TCP\IP был взведен флажок Use Fixed Address.
• При настройке Startup Server нужно выбрать Emulator Starup Server и для параметра Communication ? Ethernet выбрать значение Virtual Switch.
• Протестировать Platform Manager.
4. Необходимо протестировать соединение эмулятора с ActiveSync. Для этого нужно выполнить команду Пуск ? Программы ? Microsoft Pocket PC 2003 SDK ? Pocket PC 2003 SDK. На экран будет выведено окно командного интерпретатора. В командной строке нужно набрать команду EmuASCfg.exe /РРС и нажать клавишу Enter. В результате эмулятор будет запущен, а в окне командного интерпретатора будет выведена соответствующая инфомация (рис. 2.7).
Рис. 2.7. Окно командного интерпретатора после выполнения команды.
ВНИМАНИЕ!
Команду EmuASCfg.exe/РРС необходимо выполнять каждый раз, когда необходимо установить соединение эмулятора с ActiveSync.
CabWiz и создание установочного комплекта
Установочный комплект для любого приложения должен выполнять некоторые вполне определенные действия, позволяющие развернуть приложение на устройстве. Перечень необходимых действий приведен в списке.
1. Распаковать установочные файлы, если они запакованы.
2. Создать папки, в которые будут копироваться установочные файлы, если такие папки отсутствуют на устройстве.
3. Скопировать файлы в определенные конфигурацией установки папки.
4. Если нужно, то создать какие-либо файлы.
5. При необходимости удалить какие-либо файлы.
6. Внести необходимые изменения в конфигурационные файлы устройства.
7. Внести необходимые изменения в файл реестра на устройстве.
8. Обеспечить достаточную интеллектуальность процесса установки. Установочный комплект должен понимать, сохранять уже имеющиеся на устройстве файлы и настройки или заменить их.
9. Обеспечить необходимую интерактивность установки. Пользователь должен иметь возможность выбрать, куда именно будет установлена программа, а в некоторых случаях – выбрать, в каком составе будет установлена программа.
Большинство этих задач решается при помощи механизма AppInstall (установка приложений), частью которого является программа CabWiz, создающая установочные пакеты (файлы с расширением. cab), которые затем могут быть установлены на Pocket PC.
Более предметно применение инструмента CabWiz будет рассмотрено в следующих главах, а в этом разделе будет приведена некоторая информация, которая может понадобиться для создания установочных пакетов.
Ключи командной строки
Программа CabWiz.exe находится в каталоге C: \Program Files\Windows CE Tools\ wce420\POCKET PC 2003\Tools. Файл СabWiz.exe необходимо запускать с соответствующими ключами в командной строке.
cabwiz.exe «inf_file» [/dest dest_directory] [/err error_file][/cpu cpu_type [cpu_type]]
[/platform platform_label [platform_label]]
Расшифровка ключей приведена ниже.
В параметре inf_file указывается полное имя конфигурационного файла (включая путь, взятый в кавычки) с расширением. inf, в котором содержится вся информация, на основе которого программа CabWiz создает установочный комплект. Папка, в которую будут помещены созданные файлы с расширением. cab, указывается в параметре dest_directory. Если этот параметр не указан, то файлы. cab будут помещены в папку, в которой находится конфигурационный файл. Имя файла, в который будет записываться отчет об ошибках при создании установочного комплекта, указывается при помощи ключа error_file. Если этот параметр не задан, то программа будет выводить ошибки и предупреждения в окно сообщений на экране. При помощи ключа cpu_type разработчик может указать перечень типов процессоров, для каждого из которых будут создаваться установочные файлы. Возможные значения этого параметра соответствуют названиям папок в каталоге C: \Program Files\Windows CE Tools\wce420\POCKET PC 2003\Target. Например, для создания установочных файлов, которые будут запускаться на эмуляторе, следует выбрать значение /cpu ARMV4 X86. Параметр platform_label определяет типы платформ, для каждой из которых будет создан файл. cab. Возможные значения этого параметра приведены в табл. 2.2.
Таблица 2.2. Возможные значения параметра platform_label
Mobile Developer Power Toys
Этот пакет дополнительных утилит может быть очень полезен при отладке, особенно если применять инструменты разработки, которые выпускались не компанией Microsoft, а сторонними производителями. В этом разделе будут подробно рассмотрены все основные утилиты этого пакета.
ActiveSync Remote Display
Эта утилита позволяет вывести экран Pocket PC в окно настольного компьютера. В это окно передаются все движения мыши, при помощи чего имитируется работа стилуса, и клавиатурный ввод. Несмотря на то что при работе Remote Display происходит замедление работы, это очень полезная утилита, без которой иногда просто не обойтись. Утилита имеет режимы масштабирования изображения, поэтому экран Pocket PC отображается корректно даже на больших мониторах. Внешний вид окна программы показан на рис. 2.8.
Рис. 2.8. Окно ActiveSync Remote Display.
CECopy
Эта утилита командной строки предназначена для копирования файлов и каталогов на устойство, подключенное в данный момент к ActiveSync. Учитывая то, что сам пакет ActiveSync имеет средство для визуального копирования файлов, эта утилита вряд ли может быть названа самой полезной из состава Mobile Developer Power Toys.
Синтаксис запуска утилиты приведен ниже.
CeCopy [ключи командной строки] <источник> <приемник>
Ключ командной строки /is указывает утилите, что необходимо перезаписывать имеющиеся файлы, а ключ /s заставляет в процессе копирования учитывать подкаталоги, копируя информацию с воспроизведением иерархической структуры вложенности. Так, команда cecopy /s *.dll dev: \windows копирует все файлы с расширением. dll из текущего каталога в каталог windows на Pocket PC.
Convert_PPC_DAT_to_SP_XML
Утилита Convert_PPC_DAT_to_SP_XML позволяет из текущего файла. cab для Pocket PC генерировать файл для создания установочного файла, который можно использовать на смартфонах.
Hopper
Этот инструмент позволяет воспроизвести на устройстве ситуацию эктремального пользовательского ввода в разных режимах и довести при помощи этого краш-теста устройство до зависания или перезагрузки. При этом программа ведет подробный файл отчета и в момент краха устройства снимает копию экрана и сохраняет ее. Также в лог-файле сохраняются текущие параметры распределения памяти.
Программа позволяет измерить устойчивость приложения при большом потоке сигналов пользовательского ввода и время реакции приложения на пользовательский ввод данных.
Hopper имитирует нажатия стилусом на управляющих элементах окон и ввод данных с программной клавиатуры устройства.
JShell
Это весьма полезная программа для отладки приложений на устройстве. Эта утилита выводит на экран список процессов, загруженных модулей и распределения памяти устройства. Внешний вид запущенной программы показан на рис. 2.9.
Рис. 2.9. Окно программы JShell.
Для того чтобы запустить программу, ее необходимо скопировать на устройство и затем запустить с соответствующими ключами командной строки или без них. Ключи командной строки приведены в следующем списке.
? Ключ -r <cmd> позволяет при запуске один раз выполнить команду <cmd>.
? Ключ -f заставляет приложение выводить информацию каждые 60 с, запуская программу с приоритетом реального времени.
? Ключ -m активирует утилиту mi и выводит результаты в файл отчета каждые 4 часа. Файл отчета записывается с именем miXXX.txt в каталог \Му Documents, где XXX это номер файла-отчета.
? Ключ -w позволяет запустить команду win и записывать результаты в файл отчета каждые 4 часа. Файл отчета записывается с именем winXXX.txt в каталог \Му Documents, где XXX это номер файла-отчета.
Когда вы запускаете программу без ключей командной строки, то она запускается с графическим интерфейсом пользователя (см. рис. 2.9), и можно вручную запустить одну из команд. Для того чтобы команда была выполнена, необходимо нажать кнопку «!». Результат выполнения команды выводится в окно JShell.
Предназначение всех команд приведено в следующем списке.
? Команда win выводит список всех окон.
? Команда gi proc отображает список всех активных в системе процессов.
? Команда кр # позволяет завершить выполнение процесса с номером, указанным в качестве параметра #.
? Команда gi thrd позволяет отобразить список потоков.
? Команда gi mod позволяет вывести список модулей (DLL).
? Команда gi mod «хх» позволяет вывести список модулей (DLL), имена которых начинаются с подстроки хх.
? Команда mi отображает информацию о распределении памяти.
? Команда mi full отображает подробную информацию о распределении памяти.
? Команда s <арр> <args> создает процесс, полное имя к файлу которого передается в параметре <арр>.
PPC_Command_Shell
Это простой командный интрепретатор, выводящий на экран консольное окно (рис. 2.10).
Рис. 2.10. Окно командного интерпретатора.