Телефонное программирование Филипп Коряка Спецвыпуск: Хакер, номер #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: это может сильно усложнить и без того непростую жизнь программера. |