Программирование для карманных компьютеров
Владимир Борисович Волков
Эта книга предназначена для того, чтобы читатель смог быстро научиться создавать мощные и эффективные приложения для наладонных компьютеров Pocket PC. Рынок программ для карманных компьютеров сейчас бурно развивается, и именно в этой отрасли программист-одиночка может успешно соперничать с большими корпорациями, которые создают программное обеспечение. Прочитав эту книгу, читатель сможет уверенно и быстро разрабатывать достаточно сложные приложения для Pocket PC. Огромное количество разнообразных примеров позволит быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.
Владимир Борисович Волков
Программирование для карманных компьютеров
Введение
Я еще помню Советский Союз. Я помню очереди за всем, кроме макарон, я помню советскую ЭВМ «большой» серии, помню первые советские микро-ЭВМ, самодельные «ZX-Spectrum», компьютер БК-0010 и первую советскую «персоналку», собранную на Киевском «Электронмаше», которая была аналогом IBM 8086. Иногда я себе кажусь просто динозавром, который до сих пор еще не вымер. Я помню даже ощущение гордости от того, что мой компьютерный класс в университете оснащен самыми современными компьютерами. Это были компьютеры IBM 486, 133 МГц, 32 Мбайт ОЗУ и жесткий диск с емкостью 256 Мбайт. Тогда это были просто роскошные машины.
Когда я покупал свой Pocket PC, я не вспоминал об этом. Мне нужно было что-то удобное. То ли электронная записная книжка, то ли блокнот, то ли ежедневник. Чтобы можно было и мысли записать в дороге, и почитать, и поиграть, и не забыть сделать нужные дела. Я покупал карманный компьютер не так, как это делают все нормальные люди. Я сначала купил это устройство, а потом стал выяснять, что именно попало мне в руки.
Продавец-консультант при покупке не смог мне толком объяснить, чем отличается электронная записная книжка от Palm, а Palm, в свою очередь, от Pocket PC. «Это, в общем-то, одно и то же, – сказал он. Можно книжки читать, можно записывать что-то. Pocket PC красивее, он цветной. И на нем стоит такая маленькая Windows.» И это все, что я знал о своем компьютере на момент покупки. И оказалось, что эта машинка стоит столько же, сколько и обычный современный компьютер средней категории без монитора. Каково же было мое удивление, когда я обнаружил у себя в руках не дорогой аналог электронной игры «Tetris», а полноценный компьютер. В придачу ко всему он был оснащен не «маленькой», а практически полноценной операционной системой Windows. Систему Linux обнаружить там было бы не так удивительно, поскольку я давно знаю, какой маленькой, без потери функциональности, при необходимости может становиться эта операционная система.
Познакомившись с машинкой лучше, я выяснил, что процессор у нее мощнее, чем у тех IBM 486, которыми я когда-то гордился. У них было больше памяти, и на моем новом карманном компьютере можно было даже играть в Doom. Конечно, в Doom я не играю уже давно, но сама эта возможность радовала и вызывала теплые воспоминания о коллективных сражениях в локальной сети.
Прошло еще немного времени. Вдоволь наигравшись со своим новым компьютером и установив на него множество разных программ, я пережил незабываемые мгновения «жесткой» перезагрузки, когда система вернулась к своему первозданному состоянию. Куда же делось все, что я три месяца устанавливал? После этого я, наконец, задался вопросом, как же создаются программы для Pocket PC? Судя по количеству бесплатных и условно-бесплатных программ, для этого вряд ли надо было покупать специализированное программное обеспечение.
После того, как я задал себе этот вопрос, моя жизнь не стала легче. Есть такой сорт людей, о которых можно сказать, что их всегда мучает любопытство и они никогда не идут легкими путями. Я как раз из таких людей. Знаете ли, есть определенная прелесть в том, чтобы сначала выполнить жесткую перезагрузку своего Pocket PC, а потом уже обнаружить в нем утилиту QBackup, которая позволяет безболезненно восстановить состояние системы. Именно поэтому в поиске инструментов программирования для своего «наладонника» я потратил много времени на исследование всяких путей. Я пытался заставить работать на Pocket PC программы, написанные на Java, и программировать для Pocket PC на нем самом, а не на настольном компьютере.
Наигравшись с нестандартными средствами, я решил попробовать пойти законным путем, который предлагает Microsoft. Я принял решение воспользоваться инструментами программирования, которые были созданы разработчиком операционной системы для Pocket PC. Загрузив с сайта компании Microsoft инструменты разработки, я был приятно удивлен. Я получил в свое распоряжение полноценные среды разработки на языках Visual Basic и Visual C++, эмуляторы и отладку приложений. Можно было даже использовать низкоуровневое программирование на языке Assemler. Все было предусмотрено для того, чтобы можно было сосредоточиться на разработке логики программы, а не стандартных элементов интерфейса. Но и освоение этих довольно простых инструментов программирования отняло немало сил.
Эта книга написана для того, чтобы помочь людям, которые начинают программировать для Pocket PC. И не важно, будете ли вы заниматься этим просто ради интереса, или собираетесь сделать программирование для Pocket PC частью своей профессиональной деятельности. Прочтя эту книгу и выполнив приведенные в ней упражнения, вы сможете уверенно и быстро создавать достаточно сложные приложения для вашего наладонника. Конечно, как и любое мастерство, программирование не подразумевает остановки в развитии и достижения всезнания. Прочтя эту книгу, вы не будете знать о программировании для Pocket PC все, но вы очень быстро получите достаточно большой и разнообразный опыт, который поможет вам совершенствоваться и развиваться, обогащая свои знания все новыми находками и овладевая приемами, умениями и навыками.
Даже если ваш опыт программирования весьма невелик, вы все равно получите несомненную пользу от чтения этой книги и достигните практических результатов. Каждая глава, каждый раздел, каждая новая тема сопровождаются выполнением полезных упражнений или созданием отдельного приложения. Я рассчитывал на то, что книгу будут читать в первую очередь не профессиональные программисты, а люди, интересующиеся тем, как можно достаточно легко и быстро написать приложение для Pocket PC. Весь исходный код и алгоритм действий описан на страницах книги.
Необходимое ПО
Чтобы выполнять упражнения, приведенные в большей части книги, необходимо установить определенное программное обеспечение
В этой книге речь будет идти в основном о Pocket PC 2003. Но, поскольку компания Microsoft остается трогательно верной своей традиции обратной совместимости, все программы, которые работали на Pocket PC 2002, могут работать и с версией Pocket PC 2003. Компания Microsoft исключила язык Visual Basic из средств разработки программ для Pocket PC 2003, но при этом оставила возможность запускать программы, написанные на этом языке. Именно поэтому изучение начнется с разработки программ на eMbedded Visual Basic 3. После чего будет рассмотрен процесс разработки на eMbedded Visual C++ 3. Для обоих этих языков необходимо установить пакет eMbedded Visual Tools 3.0 2002 Edition.
Чтобы загрузить и установить этот инструмент, необходимо выполнить следующие действия.
1. Перейти на веб-страницу сайта компании Microsoft, располагающуюся по адресу http://msdn.microsoft.com/mobility/downloads/updates/default.aspx (http://msdn.microsoft.com/mobility/downloads/updates/default.aspx).
2. На открывшейся странице Products & Updates найти ссылку на средство разработки eMbedded Visual Tools 3.0 – 2002 Edition и щелкнуть мышью на ней.
3. Перейдя по этой ссылке, нужно нажать кнопку Download, располагающуюся в правой части страницы. Через некоторое время на ваш компьютер будет загружен файл с наименованием evt2002web_min.exe. Это самораспаковывающийся архив. При запуске этого файла будет отображено диалоговое окно, в котором нужно будет указать путь для распаковки архива. Каталог, в который вы хотите распаковать файлы, необходимо указать в поле Unzip To Folder, после чего следует нажать кнопку Unzip.
4. После распаковки необходимо найти в соответствующем каталоге файл setup.exe и запустить его. После этого останется лишь следовать инструкциям программы установки, выбирая пункт Установить все.
ПРИМЕЧАНИЕ.
Поскольку файл evt2002web_min.exe достаточно объемный, а доступ в Интернет не всегда позволяет за один раз быстро выкачать большой файл, кажется логичным скачать этот файл при помощи какого-нибудь менеджера закачек. Но на веб-странице нет прямой ссылки на этот файл. Однако получить ее достаточно легко. В браузере нужно открыть исходный код страницы, на которой расположена кнопка Download. После этого нужно просто отыскать в исходном коде прямую ссылку на файл evt2002web_min.exe.
После установки комплекта разработчика для Pocket PC 2002 необходимо загрузить и установить такой же комплект для более поздней версии Pocket PC 2003. Для этого нужно на странице Products & Updates найти ссылку на пакет eMbedded Visual C++ 4.0. После этого нужно произвести те же действия, что и для предыдущей версии пакета.
Эти два комплекта позволят разрабатывать полноценные приложения для Pocket PC. Но у компании Microsoft есть еще одна новая технология, которая позволяет разрабатывать приложения для Pocket PC 2003. Эта технология носит наименование. NET. Чтобы создавать приложения, работающие на этой платформе. NET, необходимо использовать среду Visual Studio 2003. Увы, эту среду невозможно загрузить бесплатно с сайта Microsoft, однако ее можно купить у дилеров этой компании.
Если вы не можете приобрести Visual Studio 2003, то это не значит, что программирование для. NET на Pocket PC закрыто для вас. Есть и другие средства разработки для этой платформы, о которых будет рассказано в следующих главах книги.
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты comp@piter.com (mailto:%20comp@piter.com) (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com (http://www.piter.com/).
Глава 1
Pocket PC с разных точек зрения
Внутреннее устройство Pocket PC
Если не брать в расчет сам факт миниатюрности и отсутствие некоторых привычных на настольном ПК устройств, таких как клавиатура и мышь, то можно считать, что Pocket PC является полноценным компьютером. Мало того, по своим параметрам он является куда более производительной машиной, чем многие, совсем недавно сошедшие со сцены компьютеры.
Как и в каждом настольном компьютере, сердцем Pocket PC является микропроцессор, установленный на материнскую плату и соединенный с различными периферийными устройствами при помощи шины. Поскольку основное достоинство Pocket PC это компактность и мобильность, то устройств, подключаемых к нему, существует не очень много. Сначала их вообще не было, но со временем все же появились мобильные клавиатуры и некоторые другие внешние устройства. Поэтому Pocket PC вполне следует известному изречению «все свое ношу с собой».
Большинство современных Pocket PC снабжено следующими устройствами и органами управления:
? TFT-экран. Для Pocket PC стандартным является размер 320x240 пикселов. Экран играет роль и клавиатуры, и мыши, поэтому для работы с ним в состав Pocket PC обычно входит стилус, при помощи которого осуществляется щелчок на определенной области экрана.
? Кнопка питания.
? Кнопка включения диктофона.
? Программируемые кнопки (кнопки приложений).
? Навигационная кнопка.
? Светодиоды индикации состояния батарей и соединений.
? Разъем подключения кабеля соединения с настольным компьютером.
? Слот для подключения расширений.
? Слот для подключения дополнительной памяти.
? IRDA-устройство для беспроводной связи на короткие расстояния в инфракрасном диапазоне.
? Антенна (если Pocket PC оснащен встроенным адаптером Wi-Fi для беспроводной связи).
? Микрофон.