Программы
Книги
Статьи

Программирование мобильных телефонов
на Java 2 Micro Edition
Скачать книгу  

ОГЛАВЛЕНИЕ

Предисловие................................................................................11
Что вы должны знать...................................................................12
Какое программное обеспечение используется..................13
Очемэтакнига .... .... ____:.....................13
Содержание компакт-диска........................................................14
Исходные коды...........................................................................15
Благодарности...........................................................................15
Об авторе..................................................................................15
Глава 1. Устройство мобильныхтелефонов., 16
1.1. Стандарт GSM......................................................................17
1.2. Архитектура телефонов.......... ..... ..... .17
1.3. Прошивка и операционная система......................................17
1.4. Инфракрасный порт.............................................................18
1.5. Технология Bluetooth...............,.........................................19
1.6. Протокол WAP......................................................................19
1.7. Протокол GPRS....................................................................20
1.8. Карта SIM.............................................................................21
Глава 2. Платформа Java 2 Micro Edition 22
2.1. Конфигурация CDC...............................................................24
2.2. Конфигурация CLDC............................................................25
2.2.1. Свойства языка Java.....................................................26
2.2.2. Виртуальная машина ....................................................26
2.3. Профиль..............................................................................27
2.4. Профиль MIDP 2.0 и конфигурация CLDC 1.0......................29
2.4.1 Пакет java.lang...............................................................29
2.4.2. naxeTjava.util.................................................................31
2.4.3. Пакетjava.io.........................................................'.........32
2.4.4. Пакетjavax.microedition.io............................................34
2.4.5. Пакетjavax.microedition.lcdui........................................35
2.4.6. naKeTjavax.microedition.lcdui.game...............................37
2.4.7. llaKeTjavax.microedition.media........................................ 37
2.4.8. Пакетjavax.microedition.media.control.................:..........38
2.4.9. Пакетjavax.microedition.midlet. .... ......38
2.4.10. riaKeTJavax.microedition.pki..........................................39
2.4.11. naKeTjavax.microedition.rms........................................39

2.3.6. Класс DataOutputStream.......... .... . 290
2.3.7. Класс InputStream......................................................291
2.3.8. Класс InputStreamReader..........................................291
2.3.9. КлассOutputStream....................................................292
2.3.10. Класс OutputStreamWriter..........................................292
2.3.11. Класс PrintStream.....................................................293
2.3.12. Класс Reader.............................................................294
.2.3.13- Класс Writer...............................................................294
2.3.14. Исключения..............................................................295
2.4. riaKeTJavax.microedition.io......;..........................................295
2.4.1. ИнтерфейсCommConnection......................................295
2.4.2. Интерфейс Connection................................................295
2.4.3. ИнтерфейсContentConnection....................................295
2.4.4. Интерфейс Datagram..................................................296
2.4.5. Интерфейс DatagramConnection.................................296
2.4.6. Интерфейс HttpConnection.........................................296
2.4.7. Интерфейс HttpsConnection. ..:..........298
2.4.8. Интерфейс InputConnection.........................................298
2.4.9. Интерфейс OutputConnection......................................298
2.4.10. Интерфейс SecureConnection...................................298
2.4.11. Интерфейс Securitylnfo.............................................298
2.4.12. Интерфейс ServerSocketConnection........................299
2.4.13. Интерфейс SocketConnection...................................299
2.4.14. ИнтерфейсStreamConnection... .... .299
2.4.15. Интерфейс StreamConnectionNotifier......................299
2.4.16. Интерфейс UDPDatagramConnection.........................299
2.4.17. Класс Connector........................................................300
2.4.18. Класс PushRegistry...................................................300
2.4.19. Исключение..............................................................301
2.5. Пакетjavax.microedition.lcdui.............................................301
2.5.1. Интерфейс Choice.......................................................301
2.5.2. ИнтерфейсCommandListener......................................302
2.5.3. Интерфейс ItemCommandListener...............................302
2.5.4. Интерфейс ItemSt ate Listener.......................................302
2.5.5. Класс Alert....................................................................302
2.5.6. KnaccAlertType...........................................................303
2.5.7. Класс Canvas...............................................................303
2.5.8. Класс ChoiceGroup......................................................305
2.5.9. KnaccCommand..........................................................306
2.5.10. КлассCustomltem . ..307
Содержание РШВННВЯ
2.5.11. Класс DateField.........................................................308
2.5.12. Класс Display............................................................308
2.5.13. Класс Displayable.....................................................310
2.5.14. Класс Font ................ ........310
2.5.15. Класс Form...............................................................311
2.5.16. Класс Gauge.....................:..........312
2.5.17. Класс Graphics...........................................................313
2.5.18. Класс Image..............................................................315
2.5.19. Класс Imageltem........................................................315
2.5.20. Класс Item.................................................................316
2.5.21. Класс List..................................................................317
2.5.22. Класс Screen.............................................................318
2.5.23. Класс Spacer.............................................................318
2.5.24. Класс Stringltem.......................................................318
2.5.25. Класс TextBox.............................................:............319
2.5.26. Класс TextField..........................................................320
2.5.27. Класс Ticker..............................................................321
2.6. Пакет javax.microedition.lcdui.game...................................321
2.6.1. Класс GameCanvas......................................................321
2.6.2. Класс Layer.................................................................322
2.6.3. Класс LayerManager...................................................322
2.6.4. Класс Sprite.................................................................323
• 2.6.5. Класс TiledLayer...........................................................324
2.7. Пакет javax.microedition.media...........>...............................324
2.7.1. Интерфейс Control.......................................................324
2.7.2. Интерфейс Controllable . ..........................................324
2.7.3. Интерфейс Player.......................................................325
2.7.4. Интерфейс PlayerListener___......................................325
2.7.5. Класс Manager...........................................................326
2.7.6. Исключения................................................................326
2.8. naKeTJavax.microedition.media.control.................................326
2.8.1. Интерфейс ToneControl..............................................326
2.8.2. ИнтерфейсУо1итеСотго1..........................................327
2.9. naKeTjavax.microedition.midlet............................................327
2.9.1. Класс Ml Diet................................................................327
2.9.2. Исключение................................................................328
2.10. naKeTJavax.microedition.pki..... .................328
2.10.1. Интерфейс Certificate................................................328
2.10.2. Исключение........ .... .... ......328
2.11. naKeTjavax.microedition.rms.............................................328


ГлаваЗ. Средства раз работки моби л ьныхпри ложен ий... 41
3.1. Установка Java 2 SDKSE.....................................................41
3.2. Среда программирования SUN ONE Studio 4 Mobile Edition ... 42
3.2.1. Настройка SUN ONE Studio 4 Mobile Edition.. . 44
3.2.2. Создание проекта в SUN ONE Studio 4 Mobile Edition .... 50
3.2.3. Создание приложений
в SUN ONE Studio 4 Mobile Edition..........................................53
3.2.4. Компиляция и запуск программ
bSUN ONE Studio4 Mobile Edition...........................................55
3.3. Среда программирования J2MEWireless Toolkit 2.1.............57
3.3.1. Установка J2MEWireless Toolkit 2.1........ ..57
3.3.2. Создание проекта в J2MEWireless Toolkit 2.1................60
3.3.3. Компиляция и запуск программы
в J2ME Wireless Toolkit 2.1.......................................................63
3.4. Упаковка программ..............................................................64
3.4.1. Файл манифеста.... ......... .... ......64
3.4.2. Файл JAD......................................................................65
3.4.3. Файл JAR....................:..................................................66
Глава 4. Телефонные эмуляторы 68
4.1. Программное обеспечение телефонов Nokia.......................69
4.1.1. Инструментарий Nokia Developer's Suite 2.0for J2ME ...72
4.1.2. Программа Nokia PC Suite 5.1.......................................77
4.1.3. Дополнительные пакеты Nokia .... .... 78
4.2. Программное обеспечение телефонов Siemens..................78
4.2.1. llaKeTSiemens Mobility Tool kit........................................79
4.2.2. Программа Siemens Date Suite......................................81
4.2.2. Дополнительные пакеты Siemens..................................81
4.3. Программное обеспечение телефонов Sony Ericsson.... .83
4.4. Программное обеспечение телефонов Motorola..................85
4.5. Программное обеспечение телефонов Samsung.................86
Глава 5. Механизм работы приложений Java2 ME............89
5.1-Мидлет.......................................................................-.......89
5.1.1. Модель работы мидлета..............................................95
5.2. Пользовательский интерфейс...............................................97
5.3. Переход с экрана на экран...................................................99
5.4. Навигация......................................................................\... 104
Глава 6. Классы пользовательского интерфейса...........111
6.1. Класс Form.. ..111

Содержание HEfl
. 6.1.1 - Методы класса Form..................................................112
6.2. Класс Item..........................................................................114
6.2.1. Класс ChoiceGroup..... .... .... .....116
6.2.2. Класс DateField..........................................................122
6.2.3. Класс TextField...........................................................125
6.2.4. Класс Stringltem..........................................................128
6.2.5. Класс Spacer..............................................................133
6.2.6. Класс Imageltem.........................................................135
6.2.7. toiaccGauge................................................................139
6.3. Класс Alert..............................,. .142
6.3.1. Методы класса Alert.............,......................................142
6.4. Класс List ........ .... ........ ...145
6.4.1. Методы класса List......................................................146
6.5. Класс Ticker.......................................................................152
6.5.1. Методы класса Ticker..................................................152
6.6. Класс Image........................................................................154
6.6.1. Методы класса Image.... .... ...... ...154
6.7. Класс Font........................................................................., 156
Глава 7. Программирование графики 162
7.1. Класс Canvas.....................................................................162
7.1.1. Методы класса Canvas................................................163
7.2. Класс Graphics...................................................................164
7.2.1. Методы класса Graphics..............................................164
7.3. Рисование линий .... ..;.... ..... .....167
7.4. Рисование прямоугольников..............................................170
7.5. Рисование дуг....................................................................174
7.6. Вывод текста......................................................................177
7.7. Механизм создания игрового цикла...................................178
7.8. Перемещение квадрата.....................................................180
7.9. Циклическое передвижение объекта по Экрану................184
7.10- Столкновение...................................................................187
7.11. Перемещение объекта с помощью клавиш......................190
.Глава 8. Техника создания игр............................................195
8.1. Класс GameCanvas.............................................................196
8.2. Класс Layer........................................................................197
8.3. КлассTiledLayer .... .... .... ........198
8.4. Класс LayerManager...........................................................199
8.5. Класс Sprite.........................................................................200
8.6. Создание фонового изображения......................................201


Предисловие
Рынок мобильных телефонов - это, пожалуй, самый быстроразвивающпйся сегмент рынка. Несколько лет назад мобильный телефон был чем-то дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
. Обилие разнообразных моделей телефонов создает на этом рынке большую конкуренцию. Множество производителей стараются включить в телефоны как можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какой-то момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым идеальным решением г.го~<> вопроса могла стать возможность загрузки в телефон программ сторонних производителей. Не секрет, что основная масса телефонов работает на основе прошивки, поэтому загрузка программ в телефон не возможна. Чтобы такая возможность появилась, производителям надо было бы решить ряд сложных вопросов. Во-первых — это язык программирования, на котором будут писаться программы для телефонов и, соответственно, поддержка этого языка самим телефоном. Второе — это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, ало процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.
Платформа Java 2 ME состоит из виртуальной Java машины, языка программирования Java и огромного количества библиотек, облегчающих работу программиста. Язык программирования Java работает на основе интерпретации, поэтому для работы программ написанных на этом языке необходима виртуальная Java машина, встроенная в устройство, на котором планируется запускать Java программы. Наличие виртуальной Java машины в мобильном телефоне означает, что производитель поддерживает технологию Java. В данный момент практически все производители имеют поддержку Java технологии, что позволяет писать любые программы на этом языке и загружать их в телефон.
Но и в этой сфере не обошлось без накладок. Появление большого количества производителей мобильных устройств в какой-то мере сопутствовало хаосу в стандартах, используемых при программировании телефонов. Каждая компания видела, да и, пожалуй, видит, свои пути развития в стандартизации своего программного обеспечения. Поэтому на рынке сейчас имеется масса инструментальных средств чуть ли не для каждой из моделей мобильных телефонов. В этом направлении, как мне кажется, сильно преуспела финская компания Nokia, явля-
¦a«niiij
Предисловие
ющаяся законодателем мод, аможети лидером в производстве телефонов. Платформа Java 2 ME призвана обеспечить определенный стандарт в этой области. Каждый из телефонов, имеющи их поддержку Java, в теории может иметь совместимость с любым программным обеспечением, созданным на Java 2 ME. Вы спросите, почему в теории?
Дело в том, что каждый из производителей телефонов имеет свои устоявшиеся характеристики по аппаратной части мобильного устройства. В большей степени это относится к дисплею телефона, модели графического интерфейса и отсутствию либо наличию различных комбинаций клавиш телефона. То есть любой программный код, написанный на Java 2 ME, обязан работать на любом телефоне с поддержкой Java. Но в виду всевозможных различий между марками, а иногда даже моделями телефонов от одного производителя, результаты могут быть несколько иными, рассмотрим пример с дисплеем. Телефоны Siemens с цветными дисплеями в своей массе имеют разрешение 101x80, тогда как у телефонов* Nokia б большинстве доступно разрешение 128x128 пикселей и при этом каждая из марок телефонов имеет сбои различия в графическом отображении некоторых элементов пользовательского интерфейса. Поэтому при программировании приложений, этот фактор придется иметь в вицу. Как программист вы должны отвечать за совместимость написанной программы с различными моделями телефонов, что, безусловно, увеличит ваши трудности в создании хорошего приложения.
Поговорив о капле дегтя в большой цистерне меда, перейдем к меду. Несомненно, Java 2 ME — это стандарт, обеспечивающий совместимость программного обеспечения с любой маркой телефона. Стремительное развитие технологий мобильных устройств обязано подразумевать определенный эталон в данном направлении. Немалое количество сторонних разработчиков при строгой стандартизации заинтересовано в развитии рынка программного обеспечения телефонов. В наше время телефон имеет почти каждый человек, в отличие, скажем от портативных компьютеров на основе операционных систем Palm и Pocket PC. Поэтому рынок мобильных устройств по своим масштабам считается наиболее перспективным, а платформа Java 2 ME, является стандартом б создании программ для телефонов.
Язык программирования Java 2 ME сам по себе не сложен, а обилие готовых библиотек позволяет писать Java приложения за короткий промежуток времени. И что самое главное, наборы инструментальных средств программирования поставляемые компанией Sun Microsystems и производителями телефонов абсолютно бесплатны! Множество энтузиастов со всего мира в кратчайшие сроки создают как платные, так и бесплатные программы и игры baJava 2 ME. Задача этой книги - дать исчерпывающую информацию по программированию мобильных телефонов, поддерживающих платформу Java 2 ME.
Что вы должны знать
Для того чтобы научиться программировать мобильные телефоны на Java 2 ME, вам необходимо знать только русскийязык. Если вы новичок в программировании
О чем эта книга
]!¦¦¦¦¦?]
инезнакомынисоднимязьжомпрограммированпя.товприложении 1 содержится полная информация непосредственно по языку программирования Java. Изучив приложение 1, вы сможете научиться программированию телефонов на Java 2 ME и приступить к прочтению этой книги. Те читатели, которые уже знакомы с основами Java, могут сразу приступаить к прочтению книги с первой главы.
Все главы книги написаны в доступной форме и рассчитаны на широкий круг читателей. Множество примеров с подробными комментариями призваны улучшить понимание общей концепции платформы Java 2 ME.
Какое программное обеспечение используется
Естественно, что вся работа по созданию программ для мобильных телефонов происходит на компьютере и наличие мобильного телефона совсем не требуется. В качестве операционной системы используется Windows ХР корпорации Microsoft. Большинство программного обеспечения находящегося на компакт-диске ориентировано именно на эту операционную систему.
Компакт-диск идущий в комплекте с этой книгой имеет просто потрясающий набор инструментальных средств для создания приложений на Java 2 ME. На компакт-диске вы найдете две бесплатные интегрированные среды программирования от компании Sun Microsystems, а также множество бесплатных инструментальных средств от таких известных компаний производителей телефонов как Siemens, Nokia, Sony Ericsson, Motorola и Samsung. Так же на компакт-диске находятся все исходные коды и программы из книги. Более подробное описание компакт-диска можно найти в приложении 3.
О чем эта книга
Книга предназначена для самостоятельного изучения как языка программирования Java, так и для программирования приложений для мобильных телефонов. Подробно рассматриваются все имеющиеся пакеты библиотек Java 2 ME, разбираются классы, методы и интерфейсы, раскрывается механизм работы программ на Java 2 ME. Прочтение всей книги лучше осуществлять в хронологическом порядке, главу за главой. В приложении 2 содержится справочник, дающий исчерпывающую информацию по всем интерфейсам, классам, методам и константам платформы Java 2 Micro Edition.
В первой главе рассматривается общая архитектура мобильных телефонов, разбирается аппаратная и программная часть, атак же принцип работы телефонов.
Во второй главе изучаются основы платформы Java 2МЕ. Рассматриваются профили MIDP 1.0 и MI DP .2.0, являющиеся спецификацией, предъявляемой к аппаратной части телефона. Разбираются все имеющиеся в Java 2 ME классы, и прослеживается общая линия наследования классов и интерфейсов.
В третьей главе объясняется установка, настройка и работа интегрированных сред, программирования. Будет изучено два.инструментария: Sun ONE Studio 4 Mobile Edition и J2ME Wireless Toolkit 2.1. Особое внимание уделяется компоновке и компиляции исходного кода.
Об авторе .НННШ
Исходные коды
В книги для изучения предлагается большое количество исходного кода программ, на основе которых раскрываются различные секреты программирования приложений HaJava 2 ME. Все исходные коды находятся на компакт-диске в папке \Code. Для того чтобы каждый раз вам не напоминать о местонахождении исходного, кода программы на диске, а также для быстрого нахождения кода программы в папке \Code, все примеры из книги имеют информационные названия, например: \Code\Listing6_3. Что говорите том, что листинг под номером 6.3, находится в папке \Code. Более удобпогоый варианта придумать сложно, поэтому в течение всей книги использоваласьуется именно такая модель работы с исходными кодами.
Благодарности
Прежде всего, хочется поблагодарить свою жену Светлану, за помощь в создании рисунков к этой книге. Спасибо, без тебя было бы сложно все это нарисовать! За сборку компакт-диска необходимо поблагодарить Дмитрия Алексеевича Мовчана. Только благодаря Дмитрию Алексеевичу читатель имеет такую потрясающую коллекцию программного обеспечения различных производителей.
Об авторе
Автор книги занимается профессиональным программированием на протяжении десятка лет. Им было создано большое количество программ и игр для компьютерных систем и мобильных телефонов в частности Он также является автором книги «DirectX 9. Уроки программирования на C++». Написать автору можно по адресу электронной почты: Java2ME@mail.ru.
 

 
Сайт управляется системой uCoz