Программирование для карманных компьютеров
Шрифт:
Ключ командной строки /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.
Для того чтобы запустить программу, ее необходимо скопировать на устройство и затем запустить с соответствующими ключами командной строки или без них. Ключи командной строки приведены в следующем списке.
? Ключ -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).
Содержимое каталога 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а на Pocket PC будет запущен Pocket Explorer и загружена первая страница поисковой системы.
TypeIt
Эта программа предназначается исключительно для смартфонов. После запуска она передает на смартфон клавиатурный ввод с рабочей станции.Общие вопросы создания интерфейса пользователя
Вся остальная книга будет посвящена именно программированию, поэтому в данном разделе будут кратко освещены общие вопросы, связанные с созданием интерфейса пользователя для Pocket PC.
Главным фактором, с которым приходится считаться при создании пользовательского интерфейса для программ, запускаемых на мобильных устройствах, является размер. Экран Pocket PC по площади на порядок меньше, чем экран современного настольного компьютера. Тем не менее функционально приложения для Pocket PC часто сравнимы по функциональности
Часто при решении этого конфликта между стремлением к реализации серьезной функциональности и малым размером экрана в жертву приносится размер элементов управления и разборчивость их обозначений. Мне запомнилось, как я установил на свой Pocket PC триальную версию одного из коммерческих органайзеров и удалил ее после первого же запуска. Причина столь резкого отказа от «мощной функциональности планирования и организации множества задач в одной программе» была проста. Органайзер нужен пользователю для облегчения жизни, а не для усложнения ее. В ситуации, когда пользователю приходится разбираться, на какую из вкладок, идущих в два ряда с двух сторон экрана надо нажать, чтобы получить нужный результат, любой из нас предпочел бы стандартный дизайн и возможности Microsoft Outlook. Именно поэтому Грег Кейзер (Greg Keyser), руководитель группы разработки мобильных устройств корпорации Microsoft, посвятил свое выступление на конференции Microsoft Mobile DevCon 2004 вопросам создания пользовательского интерфейса. Основные его советы приведены ниже.
1. Выводите на экран только ту информацию, которая нужна пользователю для выполнения текущей операции. Обычно отображается гораздо больше информации, чем нужно пользователю в данный конкретный момент. Примером может быть записная книжка «Контакты». Когда вы смотрите на список контактов, попытка отобразить в нем для каждого контакта ВСЮ информацию закончилась бы плохо даже в настольном компьютере, а на Pocket PC в действие вступает закон минимализма, который требует показывать только то, что крайне необходимо (рис. 2.12).
Рис. 2.12. Список «Контакты».
Поскольку этот список чаще всего вызывают, чтобы освежить в памяти телефон, то на первую страницу списка выводится имя и телефон (или имя и адрес электронной почты).
2. Ограничив выводимую информацию в объеме, оставьте пользователю возможность самому определить, что конкретно (например, телефон или адрес электронной почты) будет отбражено на экране.
3. Пользователь должен затрачивать как можно меньше усилий для ввода данных.
• Следует группировать наиболее важные поля ввода так, чтобы они располагались первыми в списке.
• Поскольку для ввода в Pocket PC используется программная клавиатура, нужно располагать поля ввода таким образом, чтобы они не были скрыты выведенной на экран клавиатурой.
• Если возможно, следует предлагать пользователю выбрать значение из списка, а не вводить его в поле.
• Следует минимизировать необходимые для редактирования перемещения курсора и нажатия стилусом.
4. При создании интерфейса пользователя нужно привязывать все элементы управления к узлам сетки с шагом 4x4 пиксела.
5. Левое и правое поля страницы должны занимать не менее 8 пикселов.
6. Элементы управления в высоту должны быть не менее 20 пикселов.
7. При создании окон настройки (рис. 2.13) следует придерживаться определенных правил.
• Не стоит применять меню.
• Все органы управления должны уместиться в пределах окна. Следует избегать использования линеек прокрутки.
• Не следует применять более трех вкладок.
• Нужно оставить справа поле размером не менее 8 пикселов.
8. Помните, что при работе с контактным экраном владелец устройства может использовать не только стилус, но и пальцы.
• Области для нажатия стилусом или пальцами должны быть контрастны и иметь хорошо видимую границу.
• Область для нажатия стилусом должна занимать не менее 5 пикселов по горизонтали и вертикали.
• Область для нажатия пальцем должна занимать не менее 10 пикселов по горизонтали и вертикали. На рис. 2.14 показано окно калькулятора, работа с которым возможна и без стилуса.
9. При создании надписей не следует использовать наклонный шрифт, а жирный шрифт можно применять только для выделения заголовков или разделов.
10. Нужно помнить о возможности перевода приложения на другой язык. Следует учитывать, что длина терминов на другом языке может быть больше или меньше, чем на русском или английском языке.
На этом можно закончить вводную часть и перейти к созданию своих первых приложений для Pocket PC.Глава 3 Разработка программ для Pocket PC с помощью Microsoft eMbedded Visual Basic 3.0
Среда разработки eMbedded Visual Basic 3.0
Для краткости в этой главе для обозначения среды eMbedded Visual Basic 3.0 будет использовано сокращение eVB.
Запустить eVB можно либо при помощи команды меню Пуск (Пуск ? Программы ? Microsoft eMbedded Visual Tools ? eMbedded Visual Basic 3.0), либо найти в папке установки исполняемый файл программы (при стандартной установке это будет C: \Program Files\Microsoft eMbedded Tools\EVB\ EVB3.EXE). При запуске на экран будет выведено окно создания проекта (рис. 3.1).