Программа позволяет измерить устойчивость приложения при большом потоке сигналов пользовательского ввода и время реакции приложения на пользовательский ввод данных.
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. Окно командного интерпретатора.
Содержимое каталога arm необходимо скопировать в каталог Windows на самом Pocket PC и затем нужно запустить файл cmd.exe. Список возможных команд выводится на экран, если набрать команду help и нажать клавишу Enter.
RAPI_Debug
Рта утилита состоит РёР· РґРІСѓС… частей. Программу bugtrap.exe необходимо скопировать РЅР° устройство РІ каталог Windows, Р° программу RapiDbg.exe – запустить РЅР° рабочей станции. Естественно, РїСЂРё отладке надо установить соединение РїСЂРё помощи ActiveSynСЃ. После запуска РЅР° рабочей станции программа RapiDbg.exe свяжется СЃ устройством Рё отобразит РЅР° экране отладочную информацию (распределение памяти, запущенные процессы Рё потоки), Рё останется РІ режиме ожидания, отслеживая Рё отображая весь пользовательский РІРІРѕРґ, который будет происходить РЅР° Pocket PC. РћРєРЅРѕ программы РЅР° рабочей станции показано РЅР° СЂРёСЃ.В 2.11.
Рис. 2.11. Окно программы с выводом отладочной информации.
RAPI_Start
Рта консольная программа позволяет СЃ рабочей станции запустить программу РЅР° Pocket PC, если установлено соединение ActiveSync.
К примеру, на рабочей станции в консоли можно выполнить команду RAPI_Start iexplore.exe http://yandex.ru/, а на Pocket PC будет запущен Pocket Explorer и загружена первая страница поисковой системы.
TypeIt
Рта программа предназначается исключительно для смартфонов. После запуска РѕРЅР° передает РЅР° смартфон клавиатурный РІРІРѕРґ СЃ рабочей станции.
Общие вопросы создания интерфейса пользователя
Вся остальная книга будет посвящена именно программированию, поэтому в данном разделе будут кратко освещены общие вопросы, связанные с созданием интерфейса пользователя для Pocket PC.
Главным фактором, СЃ которым приходится считаться РїСЂРё создании пользовательского интерфейса для программ, запускаемых РЅР° мобильных устройствах, является размер. Ркран Pocket PC РїРѕ площади РЅР° РїРѕСЂСЏРґРѕРє меньше, чем экран современного настольного компьютера. Тем РЅРµ менее функционально приложения для Pocket PC часто сравнимы РїРѕ функциональности СЃ приложениями для рабочей станции. Значит, органов настройки Рё управления должно быть столько же, Р° разместить РёС… надо РЅР° РєСѓРґР° меньшей площади.
Часто РїСЂРё решении этого конфликта между стремлением Рє реализации серьезной функциональности Рё малым размером экрана РІ жертву приносится размер элементов управления Рё разборчивость РёС… обозначений. РњРЅРµ запомнилось, как СЏ установил РЅР° СЃРІРѕР№ Pocket PC триальную версию РѕРґРЅРѕРіРѕ РёР· коммерческих органайзеров Рё удалил ее после первого же запуска. Причина столь резкого отказа РѕС‚ «мощной функциональности планирования Рё организации множества задач РІ РѕРґРЅРѕР№ программе» была проста. Органайзер нужен пользователю для облегчения жизни, Р° РЅРµ для усложнения ее. Р’ ситуации, РєРѕРіРґР° пользователю приходится разбираться, РЅР° какую РёР· вкладок, идущих РІ РґРІР° СЂСЏРґР° СЃ РґРІСѓС… сторон экрана надо нажать, чтобы получить нужный результат, любой РёР· нас предпочел Р±С‹ стандартный дизайн Рё возможности Microsoft Outlook. Рменно поэтому Грег Кейзер (Greg Keyser), руководитель РіСЂСѓРїРїС‹ разработки мобильных устройств корпорации Microsoft, посвятил СЃРІРѕРµ выступление РЅР° конференции Microsoft Mobile DevCon 2004 вопросам создания пользовательского интерфейса. Основные его советы приведены ниже.