Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #53, АПРЕЛЬ 2005 г.

Телефонное программирование

Филипп Коряка

Спецвыпуск: Хакер, номер #053, стр. 053-064-2


Конфигурация CLDC

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

Увы, и здесь не обошлось без недостатков.

- Отсутствие операций с плавающей точкой из-за отсутствия поддержки таких операций в мобильных устройствах на аппаратном уровне.

- Невозможность использования финализаторов из-за необходимости упрощения механизма сборки мусора.

- Ограниченность механизма обработки исключений, вызванная сложностью его реализации в полном объеме на мобильных устройствах.

Классы, доступные в рамках CLDC, можно разделить на два множества. Первое - классы, унаследованные от J2SE (java.lang.*, java.util.*, java.io.*), второе - специфичные классы javax.microedition.*

Профиль MIDP

MIDP расширяет конфигурацию CLDC, добавляя к основному набору классов специфичные. Тут и классы для работы с пользовательскими интерфейсами, и реализующие механизмы хранения, и многие другие. Сегодня есть две версии профиля MIDP - это MIDP 1.0 и MIDP 2.0. Пока на рынке телефонов с первой версией большинство, но прогресс не стоит на месте и с каждым днем множит телефоны, соответствующие MIDP 2.0.

На мой взгляд и взгляд еще нескольких тысяч программистов, MIDP 1.0 не позволяет сделать ничего серьезного. Разработчики сотовых телефонов давно были единодушны с нами, поэтому им приходилось вводить для своих продуктов специфичный набор классов, расширяющий возможности программирования под конкретную модель. В результате нарушался основной принцип языка Java - платформонезависимость. Мидлеты, написанные, скажем, с использованием специфичных классов для телефонов Siemens, не работали на телефонах Nokia и наоборот. Позднее наступило прозрение, производители телефонов собрались вместе и придумали MIDP 2.0, в который включили много полезных классов, отсутствовавших в MIDP 1.0. Вот лишь некоторые из отличий MIDP 2.0:

- усовершенствованный пользовательский интерфейс;

- поддержка технологии Push Registry, согласно которой возможна активация мидлетов при получении мобильным устройством информации;

- полноценная реализация функций для работы со звуком;

- игровой API.

Конечно, и MIDP 2.0 не решает всех проблем, но это уже гораздо лучше, чем MIDP 1.0.

Ставим софт

Хватит теории, пора переходить к практике. Какой софт должен быть установлен на машине начинающего J2ME-программера? Конечно же, тут есть масса вариантов, но мы остановимся лишь на одном из них, на мой взгляд, самом простом и удобном. Итак, в первую очередь нам, конечно же, понадобится J2SE SDK. Куда без него? Далее необходимо установить инструментарий J2ME Wireless Toolkit (WTK), в котором есть почти все необходимое для создания мидлетов. В принципе установка этих двух средств не вызывает сложностей. Единственное, что могу посоветовать - не использовать пробелы в пути к папкам, в которые ты будешь устанавливать J2SE и WTK: это может сильно усложнить и без того непростую жизнь программера.

Назад на стр. 053-064-1  Содержание  Вперед на стр. 053-064-3