Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 616139.01.99
Книга, которую вы держите в руках, представляет платформу Java 2 Micro Edition, являющуюся стандартом в программировании приложений для мобильных телефонов. В книге подробно и доступно объясняется архитектура платформы Java 2Micro Edition, состоящей из конфигураций и профилей. Рассматриваются две имеющиеся на данный момент версии профилей MIDP 1.0 и MIDP 2.0, на базе которых происходит построение мобильных приложений. В контексте этой книги изучаются основы построения мобильных программ, использование графики, техника создания игр для телефонов, работа со звуком. Разбирается большое количество классов пользовательского интерфейса, необходимых для создания интуитивно понятного и красивого интерфейса программ. Рассматриваются бесплатные среды программирования мобильных приложений от компании Sun Microsystems. Это Sun ONE Studio 4 Mobile Edition и Wireless Toolkit 2.1, а так же отдельные инструментарии от известных производителей телефонов Nokia, Siemens, Sony Ericsson, Motorola, Samsung для эмуляции мобильных устройств на компьютере. Книга будет интересна как начинающим программистам, так и более опытным не знакомым с платформой Java 2 Micro Edition. Поскольку в книге содержатся основы языка программирования Java, то пользоваться этой книгой могут и неподготовленные читатели. Книга также содержит полный справочник по интерфейсам, классам, методам, константам и исключениям платформы Java 2 Micro Edition.
Горнаков, С. Г. Программирование мобильных телефонов на Java 2 Micro Edition [Электронный ресурс] / С. Г. Горнаков. - Москва : ДМК Пресс, 2009. - 336 с.: ил. - ISBN 5-94074-279-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/408893 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Горнаков С. Г.

ПРОГРАММИРОВАНИЕ

МОБИЛЬНЫХ ТЕЛЕФОНОВ
НА JAVA 2 MICRO EDITION

Москва

УДК 004.438
ББК 32.973.26018.2

Горнаков С. Г.
Программирование мобильных телефонов на Java 2 Micro Edition.  – М.:
ДМК Пресс. – 336 с.: ил.

ISBN 5940742793

Книга, которую вы держите в руках, представляет платформу Java 2

Micro Edition, являющуюся стандартом в программировании приложений
для мобильных телефонов. В книге подробно и доступно объясняется архитектура платформы Java 2 Micro Edition, состоящей из конфигураций и
профилей. Рассматриваются две имеющиеся на данный момент версии
профилей MIDP 1.0 и MIDP 2.0, на базе которых происходит построение
мобильных приложений. В контексте этой книги изучаются основы построения мобильных программ, использование графики, техника создания
игр для телефонов, работа со звуком. Разбирается большое количество
классов пользовательского интерфейса, необходимых для создания интуитивно понятного и красивого интерфейса программ. Рассматриваются бесплатные среды программирования мобильных приложений от компании
Sun Microsystems. Это Sun ONE Studio 4 Mobile Edition и Wireless Toolkit 2.1,
а так же отдельные инструментарии от известных производителей телефонов Nokia, Siemens, Sony Ericsson, Motorola, Samsung для эмуляции мобильных устройств на компьютере. Книга будет интересна как начинающим
программистам, так и более опытным не знакомым с платформой Java 2
Micro Edition. Поскольку в книге содержатся основы языка программирования Java, то пользоваться этой книгой могут и неподготовленные читатели.
Книга также содержит полный справочник по интерфейсам, классам, методам, константам и исключениям платформы Java 2 Micro Edition.

УДК 004.438
ББК 32.973.26018.2

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой

бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность

технических ошибок все равно существует, издательство не может гарантировать абсолютную
точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

© Горнаков С. Г.

ISBN 5940742793
          © Оформление, ДМК Пресс

Содержание

Предисловие ................................................................................ 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. Пакет java.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. Пакет javax.microedition.lcdui.game ............................... 37
2.4.7. Пакет javax.microedition.media....................................... 37
2.4.8. Пакет javax.microedition.media.control ............................ 38
2.4.9. Пакет javax.microedition.midlet....................................... 38
2.4.10. Пакет javax.microedition.pki.......................................... 39
2.4.11. Пакет javax.microedition.rms ........................................ 39

Содержание
Содержание
Содержание
Содержание
Содержание

Глава 3. Средства разработки мобильных приложений... 41
3.1. Установка Java 2 SDK SE ...................................................... 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. Компиляция и запуск программ
в SUN ONE Studio 4 Mobile Edition ........................................... 55
3.3. Среда программирования J2ME Wireless Toolkit 2.1 ............. 57
3.3.1. Установка J2ME Wireless Toolkit 2.1 ............................... 57
3.3.2. Создание проекта в J2ME Wireless 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.0 for J2ME ... 72
4.1.2. Программа Nokia PC Suite 5.1 ....................................... 77
4.1.3. Дополнительные пакеты Nokia ...................................... 78
4.2. Программное обеспечение телефонов Siemens .................. 78
4.2.1. Пакет Siemens Mobility Toolkit ........................................ 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. Механизм работы приложений Java 2 ME ............ 89
5.1. Мидлет................................................................................. 89
5.1.1. Модель работы мидлета ............................................... 95
5.2. Пользовательский интерфейс.............................................. 97
5.3. Переход с экрана на экран ................................................... 99
5.4. Навигация .......................................................................... 104

Глава 6. Классы пользовательского интерфейса ............ 111
6.1. Класс Form ......................................................................... 111

Содержание
Содержание
Содержание
Содержание
Содержание

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. Класс StringItem .......................................................... 128
6.2.5. Класс Spacer ............................................................... 133
6.2.6. Класс ImageItem.......................................................... 135
6.2.7. Класс Gauge................................................................ 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

Содержание
Содержание
Содержание
Содержание
Содержание

8.7. Обработка событий с клавиш телефона ............................. 207
8.8. Анимация в игровом процессе ........................................... 213
8.9. Столкновение объектов ..................................................... 218

Глава 9. Мобильная мультимедиабиблиотека ................ 227
9.1. Пакет javax.microedition.media ............................................ 228
9.1.1. Интерфейс Control ...................................................... 228
9.1.2. Интерфейс Controllable ............................................... 228
9.1.3. Интерфейс Player ........................................................ 229
9.1.4. Интерфейс PlayerListener ............................................ 229
9.1.5. Класс Manager ............................................................ 230
9.2. Пакет javax.microedition.media.control ................................. 230
9.2.1. Интерфейс ToneControl ............................................... 230
9.2.2. Интерфейс VolumeControl ........................................... 231
9.3. Воспроизведение wavфайлов ........................................... 231
9.4. Воспроизведение тональных звуков .................................. 233

Заключение ................................................................................ 238

Приложение 1. Основы языка Java...................................... 239
1.1. Введение в программирование ......................................... 239
1.2. Объектноориентированное программирование ............... 240
1.2.1. Классы ........................................................................ 241
1.2.2. Методы ....................................................................... 241
1.3. Синтаксис и семантика языка Java 2 МЕ ............................ 242
1.3.1. Комментарии .............................................................. 243
1.3.2. Типы данных Java ........................................................ 244
1.3.3. Операторы .................................................................. 246
1.3.4. Метод main ................................................................. 248
1.3.5. Закрытые и открытые члены классов .......................... 250
1.4. Конструктор ....................................................................... 250
1.5. Объекты классов ................................................................ 251
1.6. Условные операторы.......................................................... 255
1.7. Управляющий оператор ..................................................... 256
1.8. Циклы ................................................................................ 256
1.8.1. Оператор while ............................................................ 257
1.8.2. Цикл do/while .............................................................. 259
1.8.3. Цикл for ....................................................................... 259
1.9. Массивы ............................................................................ 260
1.10. Наследование .................................................................. 262
1.10.1. Конструктор суперкласса.......................................... 264

Содержание
Содержание
Содержание
Содержание
Содержание

1.11. Интерфейсы..................................................................... 266
1.12. Пакеты ............................................................................. 267

Приложение 2. Справочник по Java 2 Micro Edition ......... 269
2.1. Пакет java.lang .................................................................... 269
2.1.1. Интерфейс Runnable ................................................... 269
2.1.2. Класс Boolean ............................................................. 269
2.1.3. Класс Byte ................................................................... 270
2.1.4. Класс Character ........................................................... 270
2.1.5. Класс Class ................................................................. 271
2.1.6. Класс Integer ............................................................... 271
2.1.7. Класс Long .................................................................. 272
2.1.8. Класс Math .................................................................. 273
2.1.9. Класс Object................................................................ 273
2.1.10. Класс Runtime ........................................................... 274
2.1.11. Класс Short ............................................................... 274
2.1.12. Класс String............................................................... 274
2.1.13. Класс StringBuffer ..................................................... 277
2.1.14. Класс System ............................................................ 278
2.1.15. Класс Thread ............................................................. 279
2.1.16. Класс Throwable ........................................................ 279
2.1.17. Исключения .............................................................. 280
2.1.18. Ошибки ..................................................................... 280
2.2. Пакет java.util ...................................................................... 280
2.2.1. Интерфейс Enumeration .............................................. 280
2.2.2. Класс Calendar ............................................................ 281
2.2.3. Класс Date .................................................................. 282
2.2.4. Класс Hashtable .......................................................... 282
2.2.5. Класс Random ............................................................. 283
2.2.6. Класс Stack ................................................................. 284
2.2.7. Класс Timer ................................................................. 284
2.2.8. Класс TimerTask .......................................................... 284
2.2.9. Класс TimeZone........................................................... 285
2.2.10. Класс Vector .............................................................. 285
2.2.11. Исключения .............................................................. 286
2.3. Пакет java.io ........................................................................ 286
2.3.1. Интерфейс DataInput .................................................. 287
2.3.2. Интерфейс DataOutput ................................................ 287
2.3.3. Класс ByteArrayInputStream......................................... 288
2.3.4. Класс ByteArrayOutputStream ...................................... 289
2.3.5. Класс DataInputStream ................................................ 289

Содержание
Содержание
Содержание
Содержание
Содержание

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. Пакет javax.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. Интерфейс SecurityInfo ............................................. 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. Интерфейс ItemStateListener....................................... 302
2.5.5. Класс Alert................................................................... 302
2.5.6. Класс AlertType............................................................ 303
2.5.7. Класс Canvas............................................................... 303
2.5.8. Класс ChoiceGroup ...................................................... 305
2.5.9. Класс Command .......................................................... 306
2.5.10. Класс CustomItem ..................................................... 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. Класс ImageItem ........................................................ 315
2.5.20. Класс Item ................................................................. 316
2.5.21. Класс List .................................................................. 317
2.5.22. Класс Screen ............................................................. 318
2.5.23. Класс Spacer ............................................................. 318
2.5.24. Класс StringItem ........................................................ 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. Пакет javax.microedition.media.control ................................. 326
2.8.1. Интерфейс ToneControl ............................................... 326
2.8.2. Интерфейс VolumeControl ........................................... 327
2.9. Пакет javax.microedition.midlet ............................................ 327
2.9.1. Класс MIDlet ................................................................ 327
2.9.2. Исключение ................................................................ 328
2.10. Пакет javax.microedition.pki............................................... 328
2.10.1. Интерфейс Certificate ................................................ 328
2.10.2. Исключение .............................................................. 328
2.11. Пакет javax.microedition.rms ............................................. 328

10
10
10
10
Содержание
Содержание
Содержание
Содержание
Содержание

2.11.1. Интерфейс RecordComparator................................... 328
2.11.2. Интерфейс RecordEnumeration.................................. 329
2.11.3. Интерфейс RecordFilter ............................................. 329
2.11.4. Интерфейс RecordListener ........................................ 329
2.11.5. Класс RecordStore ..................................................... 330

Приложение 3. Структура компактдиска.......................... 331

Список используемой литературы ........................................... 333

Алфавитный указатель .............................................................. 334

Предисловие

Рынок мобильных телефонов – это, пожалуй, самый быстроразвивающийся сегмент рынка. Несколько лет назад мобильный телефон был чемто дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь
подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
Обилие разнообразных моделей телефонов создает на этом рынке большую
конкуренцию. Множество производителей стараются включить в телефоны как
можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какойто
момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым
идеальным решением этого вопроса могла стать возможность загрузки в телефон
программ сторонних производителей. Не секрет, что основная масса телефонов
работает на основе прошивки, поэтому загрузка программ в телефон не возможна.
Чтобы такая возможность появилась, производителям надо было бы решить ряд
сложных вопросов. Вопервых – это язык программирования, на котором будут
писаться программы для телефонов и, соответственно, поддержка этого языка самим телефоном. Второе – это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, а это процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению
стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.
Платформа Java 2 ME состоит из виртуальной Java машины, языка программирования Java и огромного количества библиотек, облегчающих работу
программиста. Язык программирования Java работает на основе интерпретации,
поэтому для работы программ написанных на этом языке необходима виртуальная Java машина, встроенная в устройство, на котором планируется запускать Java программы. Наличие виртуальной Java машины в мобильном телефоне
означает, что производитель поддерживает технологию Java. В данный момент
практически все производители имеют поддержку Java технологии, что позволяет писать любые программы на этом языке и загружать их в телефон.
Но и в этой сфере не обошлось без накладок. Появление большого количества
производителей мобильных устройств в какойто мере сопутствовало хаосу
в стандартах, используемых при программировании телефонов. Каждая компания видела, да и, пожалуй, видит, свои пути развития в стандартизации своего
программного обеспечения. Поэтому на рынке сейчас имеется масса инструментальных средств чуть ли не для каждой из моделей мобильных телефонов. В этом
направлении, как мне кажется, сильно преуспела финская компания Nokia, явля12
12
12
12
12
Предисловие
Предисловие
Предисловие
Предисловие
Предисловие

ющаяся законодателем мод, а может и лидером в производстве телефонов. Платформа Java 2 МЕ призвана обеспечить определенный стандарт в этой области.
Каждый из телефонов, имеющийх поддержку Java, в теории может иметь совместимость с любым программным обеспечением, созданным на Java 2 МЕ. Вы спросите, почему в теории?
Дело в том, что каждый из производителей телефонов имеет свои устоявшиеся характеристики по аппаратной части мобильного устройства. В большей степени это относится к дисплею телефона, модели графического интерфейса и отсутствию либо наличию различных комбинаций клавиш телефона. То есть
любой программный код, написанный на Java 2 МЕ, обязан работать на любом
телефоне с поддержкой Java. Но в виду всевозможных различий между марками,
а иногда даже моделями телефонов от одного производителя, результаты могут
быть несколько иными, рассмотрим пример с дисплеем. Телефоны Siemens с цветными дисплеями в своей массе имеют разрешение 10180, тогда как у телефонов
Nokia в большинстве доступно разрешение 128128 пикселей и при этом каждая
из марок телефонов имеет свои различия в графическом отображении некоторых
элементов пользовательского интерфейса. Поэтому при программировании приложений, этот фактор придется иметь в виду. Как программист вы должны отвечать за совместимость написанной программы с различными моделями телефонов, что, безусловно, увеличит ваши трудности в создании хорошего приложения.
Поговорив о капле дегтя в большой цистерне меда, перейдем к меду. Несомненно, Java 2 МЕ – это стандарт, обеспечивающий совместимость программного
обеспечения с любой маркой телефона. Стремительное развитие технологий
мобильных устройств обязано подразумевать определенный эталон в данном направлении. Немалое количество сторонних разработчиков при строгой стандартизации заинтересовано в развитии рынка программного обеспечения телефонов. В наше время телефон имеет почти каждый человек, в отличие, скажем от
портативных компьютеров на основе операционных систем Palm и Pocket PC.
Поэтому рынок мобильных устройств по своим масштабам считается наиболее
перспективным, а платформа Java 2 МЕ, является стандартом в создании программ для телефонов.
Язык программирования Java 2 ME сам по себе не сложен, а обилие готовых
библиотек позволяет писать Java приложения за короткий промежуток времени.
И что самое главное, наборы инструментальных средств программирования поставляемые компанией Sun Microsystems и производителями телефонов абсолютно бесплатны! Множество энтузиастов со всего мира в кратчайшие сроки создают как платные, так и бесплатные программы и игры на Java 2 ME. Задача этой
книги – дать исчерпывающую информацию по программированию мобильных
телефонов, поддерживающих платформу Java 2 ME.
Что вы должны знать

Для того чтобы научиться программировать мобильные телефоны на Java 2 ME,
вам необходимо знать только русский язык. Если вы новичок в программировании

13
13
13
13

и не знакомы ни с одним языком программирования, то в приложении 1 содержится полная информация непосредственно по языку программирования Java. Изучив
приложение 1, вы сможете научиться программированию телефонов на Java 2 ME
и приступить к прочтению этой книги. Те читатели, которые уже знакомы с основами Java, могут сразу приступаить к прочтению книги с первой главы.
Все главы книги написаны в доступной форме и рассчитаны на широкий круг
читателей. Множество примеров с подробными комментариями призваны улучшить понимание общей концепции платформы Java 2 ME.
Какое программное обеспечение используется

Естественно, что вся работа по созданию программ для мобильных телефонов происходит на компьютере и наличие мобильного телефона совсем не требуется. В качестве операционной системы используется Windows XP корпорации
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 2ME. Рассматриваются
профили MIDP 1.0 и MIDP 2.0, являющиеся спецификацией, предъявляемой
к аппаратной части телефона. Разбираются все имеющиеся в Java 2 ME классы,
и прослеживается общая линия наследования классов и интерфейсов.
В третьей главе объясняется установка, настройка и работа интегрированных
сред программирования. Будет изучено два инструментария: Sun ONE Studio 4
Mobile Edition и J2ME Wireless Toolkit 2.1. Особое внимание уделяется компоновке и компиляции исходного кода.

О чем эта книга
О чем эта книга
О чем эта книга
О чем эта книга
О чем эта книга

14
14
14
14
Предисловие
Предисловие
Предисловие
Предисловие
Предисловие

Четвертая глава повествует об имеющихся наборах инструментальных
средств программирования (SDK), предоставляемых производителями телефонов. Анализируются инструментарии компаний Nokia, Siemens, Sony Ericsson,
Motorola и Samsung. Все программные средства чаще всего поставляются в виде
телефонных эмуляторов. Интегрируя эти наборы SDK в среды программирования, рассмотренные в главе 3, таким образом вы сможете тестировать созданные
программы на телефонах различных моделей.
В пятой главе раскрывается механизм работы Java приложений, обсуждается
принцип поэкранного отображения информации на дисплее телефона, и рассматриваются правила перехода и навигации в Java программах.
Шестая глава полностью посвящена имеющимся в Java 2 ME классам пользовательского интерфейса. Использование этих классов в приложении помогает
создать красочный и логически понятный интерфейс программы.
В седьмой главе раскрываются секреты программирования графики. На практике объясняется механизм рисования графики и создание создания игрового
цикла для профиля MIDP 1.0. Затрагиваются некоторые вопросы, связанные
с передвижением и столкновением объектов в играх для мобильных телефонов.
Восьмая глава освещает темы, связанные с техникой программирования игр
для профиля MIDP 2.0. Будут проанализированы все имеющиеся игровые классы, вопросы связанные с анимацией, столкновением и перемещением объектов
по экрану телефона.
Девятая глава содержит подробное описание мультимедийной библиотеки,
при помощи которой возможно осуществляется воспроизведение звуков на телефонах.
В приложении 1 не искушенный в программировании читатель сможет изучить самостоятельно основы языка программирования Java. Используемый при
освещении данной темы подход при освещении данной темы предоставляет читателю возможность в кратчайшие сроки получить всю необходимую информацию
для последующего прочтения и понимания этой книги.
Приложение 2 выполнено в виде справочника по всем основным интерфейсам, классам, методам и константам платформы Java 2 ME. Вся справочная информация разбита на соответствующие разделы и выстроена по алфавиту, что
поможет читателю быстро найти подробную информацию о том или ином компоненте платформы Java 2 ME.
Приложение 3 содержит описание структуры компактдиска идущего в комплекте с книгой и содержащего программное обеспечение.
Содержание компактдиска

Компактдиск содержит исходные коды и программы из книги. Кроме этого
представлены две бесплатные среды программирования приложений для мобильных телефонов: Sun ONE Studio 4 Mobile Edition и J2ME Wireless Toolkit 2.1
компании Sun Microsystems. А так же большое количество инструментальных
средств от компаний Nokia, Siemens, Sony Ericsson, Motorola, Samsung.

15
15
15
15

Исходные коды

В книги для изучения предлагается большое количество исходного кода программ, на основе которых раскрываются различные секреты программирования
приложений на Java 2 ME. Все исходные коды находятся на компактдиске в папке \Code. Для того чтобы каждый раз вам не напоминать о местонахождении исходного кода программы на диске, а также для быстрого нахождения кода программы в папке \Code, все примеры из книги имеют информационные названия,
например: \Code\Listing6_3. Что говорит о том, что листинг под номером 6.3, находится в папке \Code. Более удобногоый варианта придумать сложно, поэтому
в течение всей книги использоваласьуется именно такая модель работы с исходными кодами.
Благодарности

Прежде всего, хочется поблагодарить свою жену Светлану, за помощь в создании рисунков к этой книге. Спасибо, без тебя было бы сложно все это нарисовать! За сборку компактдиска необходимо поблагодарить Дмитрия Алексеевича
Мовчана. Только благодаря Дмитрию Алексеевичу читатель имеет такую потрясающую коллекцию программного обеспечения различных производителей.
Об авторе

Автор книги занимается профессиональным программированием на протяжении десятка лет. Им было создано большое количество программ и игр для
компьютерных систем и мобильных телефонов в частности. Он также является
автором книги «DirectX 9. Уроки программирования на С++». Написать автору
можно по адресу электронной почты: Java2ME@mail.ru.

Об авторе
Об авторе
Об авторе
Об авторе
Об авторе

Глава 1. Устройство мобильных телефонов

Прежде чем приступить к изучению особенностей программирования мобильных телефонов на Java 2 МЕ, необходимо познакомиться с общей схемой устройства телефона.
Сейчас на рынке мобильных телефонов присутствует множество как мелких,
так и крупных производителей мобильных телефонов, предлагающих широкий
ассортимент продукции. По цене и по своим функциональным признакам имеющиеся устройства , можно условно разделить на три категории.
Первая представляет собой мобильные телефоны с набором простейших
функций, такие телефоны часто называют «звонилка». Функциональность подобных телефонов сводится только к их прямому назначению. С такого устройства можно произвести или принять вызов и воспользоваться услугами SMS
(Short Message Service – служба коротких сообщений). Сам телефон, как правило, имеет монохромный дисплей небольшого размера, а из пользовательских программ доступны только простейшие, такие как калькулятор, таймер, диктофон,
телефонная книга и так далее.
Вторая категория мобильных телефонов имеет более широкий круг возможностей. Дисплей таких телефонов обычно цветной, разрешение варьируется от 80
до 130 пикселей с глубиной цвета около пяти тысяч цветов. Телефоны этой категории обычно содержат те же возможности, что и у аппаратов первой категории и
ряд дополнительных функций. Одна из них – это возможность загрузки приложений написанных на языке Java. Из всех дополнительных функций стоит выделить возможность работы с WAP (Wireless Application Protocol – протокол беспроводной передачи данных) и GPRS (General Packet Radio Service – радио
сервис пакетной передачи данных). Принципы работы этих протоколов описывается в разделах 1.6 и 1.7 этой главы.
Третья категория телефонов представляет собой так называемую бизнескатегорию. Подобные устройства имеют впечатляющие наборы функций, сравнимые с карманными портативными устройствами (КПК), а цена таких мобильных
телефонов может быть достаточно высокой.
Все три условные категории телефонов схожи одним – функцией связи,
а различие в дополнительных возможностях вызвано условиями конкуренции
между производителями и необходимостью продвижения новых технологий.
Технический прогресс не стоит на месте, создаются все меньшие по размерам
процессоры с более мощными характеристиками. Как мне кажется, рынок КПК
со временем либо «умрет», либо само устройство КПК плавно ассимилируется
в мобильные телефоны, что собственно уже и происходит. Как правило, все телефоны для связи используют стандарт GSM.

17
17
17
17

1.1. Стандарт GSM

Цифровой стандарт GSM (Global System Mobile Communication – система
мобильной глобальной связи), на основе которого происходит связь между телефонами, – самый распространенный стандарт во всем мире, обеспечивающий диапазон работы мобильных телефонов на частотах 900/1800/1900 МГц. Стандарт
GSM обладает качественными и безопасными характеристиками связи, что и повлияло на его популярность во всем мире. В нашей стране это основной стандарт,
использующийся всеми крупными операторами связи.
1.2. Архитектура телефонов

Не думаю, что стоит здесь приводить  схемы печатных плат телефонов и разбирать тип установленных микросхем, все это больше подходит сериям книг «Радиолюбитель», но несколько слов об аппаратной части сказать все же необходимо.
Телефон имеет процессор, память, приемопередатчик, систему контроллеров для дисплея, клавиатуры, аккумулятора и карту SIM (Subscriber identification module – идентификационный модуль абонента). Процессор вкупе с памятью является сердцем телефона. Он имеет более скромные характеристики, чем
процессор компьютера. Приемопередатчик служит для приема и передачи сигнала и включает в себя различные фильтры, кодеры, декодеры речи и сигналов.
Система контроллеров для клавиатуры (клавиш телефона) и дисплея позволяет
вводить информацию в телефон посредством клавиш и выводить ее на дисплей.
Контроллер аккумулятора производит управление процессом зарядки аккумуляторных батарей телефона.
Все аппаратное обеспечение телефона (железо) безусловно, само по себе функционировать не может, и работа осуществляется на основе прошивки или операционной системы.
1.3. Прошивка и операционная система

Все имеющиеся мобильные телефоны можно разделить еще на два типа – это
телефоны, работающие под управлением прошивки и телефоны, использующие
операционную систему. Телефоны с операционной системой также носят название смартфоны. На рынке сейчас имеются две операционные системы, адаптированные под нужды телефонов, это Windows Mobile и Symbian.
Операционная система Windows Mobile, за которой стоит, как не трудно догадаться, софтверный гигант Microsoft предъявляет достаточно высокие требования к аппаратной части телефона. Соответственно, высокая цена на такие устройства никак не способствует популяризации этой операционной системы. Но
стоит признать тот факт, что операционная система Windows Mobile – очень
мощная и хорошо продуманная система, которая в будущем возможно сможет
занять одно из ведущих мест в этом сегменте рынка.
Операционная система Symbian является открытой системой и предъявляет
значительно меньше требований к аппаратному устройству телефона. В акциоПрошивка и операционная система
Прошивка и операционная система
Прошивка и операционная система
Прошивка и операционная система
Прошивка и операционная система

18
18
18
18
Устройство мобильных телефонов
Устройство мобильных телефонов
Устройство мобильных телефонов
Устройство мобильных телефонов
Устройство мобильных телефонов

нерное общество Symbian Ltd. (разработчик операционной системы Symbian)
входят все мировые лидеры производителей телефонов. Эта операционная система на данный момент занимает доминирующее положение в мобильной промышленности.
Обе операционные системы имеют различные наборы функциональных возможностей, но работа обеих похожа на работу компьютерных систем, конечно
с учетом характеристик телефона, а это процессор, память, клавиатура, дисплей и
так далее. Все эти факторы значительно уменьшают функциональность телефона, но прогресс не стоит на месте: в 1999 году процессор с частотой в 200 ГГц
казался вершиной компьютерной техники, а сейчас об этом смешно вспомнить.
Прошивка телефона – это программа, управляющая работой телефона, но
вшитая в сам телефон. Каждый из производителей создает свои прошивки для
конкретных моделей, предопределяя тем самым функциональность телефона.
Операционная система разрешает осуществлять загрузку созданных программ
в телефон, а в прошивке такая возможность не предусмотрена. Точнее сказать, не
была предусмотрена до появления платформы Java 2 МЕ. Для работы приложений написанных на Java, необходима виртуальная Java машина или среда исполнения приложений. Виртуальная Java машина, адаптированная специально для
телефонов, настолько компактна по размеру, и, что самое главное, безопасна, что
практически все производители телефонов стараются создать поддержку Java
программ, то есть встроить среду исполнения Java программ в телефон. Загрузка
сторонних приложений дала очень мощный импульс мобильной игровой индустрии, что, как мне кажется, вывело телефон на новый более качественный уровень.
Единственное что необходимо понимать в этом аспекте, это то, что среда исполнения Javaприложений в телефоне реализована таким образом, что не позволяет
написать «вредные» программы портящие аппаратную часть телефона. Модель
работы Javaпрограмм реализована как бы в виде закупоренной бочки, в которой
и происходит работа всех Java приложений. Из этой бочки программы выбраться
не могут, а соответственно не могут и нанести ущерб телефону.
Загрузка Java программ в телефон происходит при помощи программного
обеспечения и кабеля, соединяющего телефон с компьютером. Также можно загрузить в телефон программы при помощи инфракрасного порта, технологии
Bluetooth, либо непосредственно из Интернета с помощью протоколов WAP и
GPRS. Все программы, загружаемые в телефон, распространяются в виде двух
файлов, JAD – это дескриптор приложения и JAR – архив программы. Более подробно процесс загрузки программ рассматривается в главе 3.
1.4. Инфракрасный порт

Инфракрасный порт имеют не все телефоны. В основном это модели, относящиеся ко второй и третьей условной ценовой категории, о которых мы говорили
в начале этой главы. С помощью инфракрасного порта можно произвести соединение с компьютером, другим телефоном или любым иным устройством имеющим инфракрасный порт. Принцип работы инфракрасного порта очень прост:

19
19
19
19

имеются светодиод и фотодиод, соответственно для передачи и приема сигнала.
Поместив два устройства на расстоянии не более полутора метров в зоне прямой
видимости можно осуществить связь между этими устройствами. Что касается
связи телефона с компьютером посредством инфракрасного порта, то это происходит при помощи программного обеспечения поставляемого производителями
телефонов. В частности на компакт диске можно найти программы для телефонов Sony Ericsson, Nokia и Siemens, подробный анализ этих программ вы найдете
в главе 3.
1.5. Технология Bluetooth

Название этой сравнительно новой технологии (Bluetooth – голубой зуб) позаимствовано из истории – так некогда звали датского короля Гарольда второго,
стремящегося объединить все датские земли в одно королевство Дания.
С помощью технологии Bluetooth можно осуществлять соединение сразу
с множеством устройств и организовывать небольшие локальные сети. Связь
с использованием Bluetooth происходит на частоте 2,4 ГГц с расстояния порядка
10 метров и что самое главное, не требует прямого соединения, то есть устройства
могут находиться вне зоны видимости друг друга. Приемопередатчик сигнала
выполняется в виде микросхемы и может связать в сеть около десятка разнообразных устройств.
Сейчас технология Bluetooth очень активно используется производителями
мобильных телефонов для создания беспроводных гарнитур, например наушника и микрофона.
1.6. Протокол WAP

Протокол WAP (Wireless Application Protocol) – это протокол беспроводного
соединения с сетью Интернет. Имея поддержку WAP в мобильном телефоне, появляется возможность выхода в Интернет для просмотра специально адаптированных webстраниц на телефоне. Также с помощью WAP можно скачать или купить игру или приложение, написанное на языке Java. Стоимость таких программ
обычно не превышает 12 доллара. Однако пользоваться WAP можно только
в том случае, если ваш оператор сотовой связи предоставляет WAP услуги. Телефон, имеющий поддержку WAP, снабжен и WAPбраузером, что и делает возможным просмотр WAP страниц в Интернете.
Если обобщить все выше сказанное, то работу телефона с протоколом WAP,
можно сравнить с обыкновенным компьютером, связывающимся с сетью Интернет. Все Интернетстраницы, используемые компьютерными системами написаны
на языке HTML или XML, а страницы для WAPсоединения созданы с помощью
своего языка WML (Wireless Markup Language – беспроводной язык разметки).
Для того чтобы через WAP выйти в Интернет с мобильного телефона, необходимо обязательно произвести соответствующие настройки в телефоне. Сделать это
можно вручную, а можно воспользоваться услугами своего оператора, предоставляющего мобильную связь. Для этого необходимо позвонить по соответствующеПротокол WAP
Протокол WAP
Протокол WAP
Протокол WAP
Протокол WAP