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

► набор пакетов, которые служат как подмножество J2SE API;

► набор основных сетевых интерфейсов.

Большая часть классов и интерфейсов, входящих в состав CLDC API, напрямую наследованы от J2SE API. J2ME требует, чтобы классы и интерфейсы, наследованные от J2SE, были неизменными. Это означает, что все методы и поля этих классов совпадают с методами и полями таких классов J2SE, что заметно облегчает обучение программированию в J2ME, а также делает код переносимым между J2SE и J2ME.

Но CLDC уходит в сторону от J2SE API в вопросах, касающихся работы в сети, и формирует сетевую оболочку, известную как Generic Connection Framework (GCF, Настраиваемая сетевая оболочка). GСF предназначен для определения общей архитектуры сети, поддерживающей сетевой ввод/вывод. Это весьма гибкая, а следовательно, расширяемая архитектура. Оболочка GCF разрабатывалась как функциональное подмножество сетевых классов J2SE, поэтому возможности GCF доступны в J2SE. GCF состоит из набора интерфейсов соединений, а также класса Connector, используемого для установления различных соединений. Класс Connector и интерфейсы соединений находятся в пакете javax.microedition.io. В главе 14 вы подробнее познакомитесь с программированием сетевых мобильных игр.

MIDP API

Профиль устройства выходит на первый план, когда отступает конфигурация и наступает черед более детального описания функций конкретного типа устройства. В случае Mobile Information Device Profile (MIDP) тип устройства – это беспроводное мобильное устройство, например, мобильный телефон или пейджер. Следовательно, MIDP должен взять CLDC API и надстроить необходимые классы и интерфейсы, позволяющие написание собираемых мидлетов, например, игровых.

MIDP API можно разделить на две части, подобно CLDC API:

► два класса, непосредственно наследованных от J2SE API;

► ряд пакетов, которые включают классы и интерфейсы, уникальные для разработки MIDP.

Подобно CLDC API, MIDP API также наследует от J2SE API. Неудивительно, что большая часть MIDP API – это новые классы и интерфейсы, специально разработанные для программирования мидлетов. Хотя эти классы и интерфейсы могут выполнять те же функции, что и некоторые классы и интерфейсы J2SE API, в целом они уникальны для MIDP API, а следовательно, тщательно проработаны для решения специфичных для мидлетов задач. Эта часть MIDP API разделена на несколько пакетов, каждый из которых следует за именем javax.microedition:

► javax.microedition.midlet;

► javax.microedition.lcdui;

► javax.microedition.lcdui.game;

► javax.microedition.media;

► javax.microedition.media.control;

► javax.microedition.io;

► javax.microedition.pki;

► javax.microedition.rms.

Пакет javax.microedition.midlet – это центральный пакет в MIDP API, он включает в себя единственный класс MIDlet. Класс MIDlet содержит основные функции, необходимые для MIDP-приложения (мидлета), которые могут выполняться на мобильном устройстве. По мере прочтения книги и построения более сложных мидлетов вы более подробно познакомитесь с этим классом.

Пакеты javax.microedition.lcdui и javax.microedition.lcdui.game включают классы и интерфейсы, которые поддерживают GUI-компоненты, специально предназначенные для маленьких экранов мобильных устройств. Кроме того, в этих пакетах содержатся классы и интерфейсы, специально разработанные для создания мобильных игр. Уникальные возможности, такие как, например, анимация спрайтов и управление слоями, делают эти пакеты чрезвычайно ценными для программирования мобильных игр. Чуть позже в этой главе вы начнете свое знакомство с некоторыми из этих классов и пакетов, а при дальнейшем прочтении книги будете углублять свои знания.