Конечно, чем больше у читателя опыта, тем лучше. Во всей книге появляются различные ссылки на AWT и Swing. Значительная часть MIDP-программирования включает манипулирование компонентами интерфейса пользователя. Читатель, знакомый с понятиями инструментария AWT или Swing, может быстро понять сущность организации и понятий модели программирования UI в MIDP. Несмотря на преимущества знания AWT и Swing, вам не нужно иметь опыта в разработке UI Java.
Соглашения, используемые в этой книге
В таблице 1.1 показаны соглашения об обозначениях, используемые в этой книге. В таблице 1.2 перечислены соглашения, используемые для всех исходных кодов, включенных в данную книгу.
Таблица 1.1. Соглашения об обозначениях
Описание данных Используемое обозначение
Исходные коды Java, машинно-генерируемый текст — Шрифт Courier
Первое использование нового термина — Курсив
Обычный текст — Шрифт Times New Roman
Таблица 1.2. Соглашения исходных кодов, используемые в этой книге
Тип данных — Пример
Имена методов Java, имена переменных: Первое слово с маленькой буквы, последующие слова с большой — Protected int variableName Public void lookAtThisMethodName ()
Имена классов Java: первая буква заглавная для всех слов — Public class AllWordsFirstCapital
Где скачать J2ME
Вы можете скачать J2ME Wireless Toolkit и полную API-документацию, следуя ссылкам на Java Developer Connection с адреса http://java.sun.com/. Там вы найдете полную API-документацию для CDC, профиля Foundation Profile и CLDC/MIDP, а также инструментарий для всех платформ, таких, «Платформа программирования J2ME для портативных устройств» как Solaris, Linux, Windows NT и Windows 2000.
Где найти примеры кoдoв из этой книги
Все примеры кодов, с которыми вы столкнетесь в этой книге, могут быть найдены на Web-сайте издательства «Prentice Hall» по адресу http://www.phptr.com/piroumian.
Глава 1. Знакомство с платформой Java 2 Micro Edition (J2ME)
Компания «Sun Microsystems» определяет три платформы Java, каждая из которых отвечает нуждам различных компьютерных сред:
— Java 2 Standard Edition (J2SE);
— Java 2 Enterprise Edition (J2EE);
— Java 2 Micro Edition (J2ME).
Исходной точкой разработки платформы J2ME послужила необходимость определения компьютерной платформы, которая бы могла послужить основой для электронных и встраиваемых устройств массового потребления. Эти устройства иногда называются портативными устройствами.
Создатели платформы J2ME разделяют портативные устройства на две отдельные категории:
— Персональные мобильные информационные устройства, которые способны к нестационарным сетевым коммуникациям — мобильные телефоны, двусторонние пейджеры, персональные информационные устройства («карманные компьютеры») и органайзеры.
— Информационные устройства с общим соединением, подсоединенные к фиксированному беспрерывному сетевому соединению — компьютерные приставки к телевизору, телевизоры с выходом в Интернет, телефоны с дисплеем и возможностью выхода в Интернет, коммуникаторы высокого класса, развлекательные и навигационные автомобильные системы.
Первая категория описывает устройства, которые имеют специальное назначение илг ограничены в функциях, они не являются универсальными вычислительными машин ми. Вторая категория описывает устройства, которые обычно имеют большие возможности для средств пользовательского интерфейса (UI). Конечно, устройства с более совершенными средствами пользовательского интерфейса обычно имеют большую пьютерную мощность. На практике компьютерная мощность является первостепенным атрибутом, отличающим эти две категории устройств. Тем не менее, это разграничение является немного неясным, поскольку технология дает возможность все большие и большие мощности размещать во все более и более мелких устройствах.
Как и компьютерная мощность, связь — наличие таких средств, как беспроводные сети, — также влияет на виды функциональных возможностей и служб, которые могут поддерживать портативные устройства. Задача — и первостепенная цель — для J2ME заключается в установлении платформы, которая может поддерживать разумный набор служб для широкого спектра устройств, имеющих широкий диапазон различных возможностей.
Создатели J2ME определяют в качестве ключевого механизма модульное построение, которое дает возможность поддерживать множество типов устройств. Разработчики J2ME используют для создания 12МЕ-модуля конфигурации и профили.
Определение платформы Java для портативных устройств
Конфигурации и профили являются основными элементами, которые составляют модульную схему J2ME. Эти два элемента дают возможность поддержки огромного количества устройств, которые поддерживают J2ME.
Конфигурация J2ME определяет минимальную Java-платформу для семейства устройств. Все члены данного семейства имеют сходные требования к памяти и производительности. Конфигурация является на самом деле спецификацией, которая определяет доступные ресурсы системного уровня, такие, как набор свойств языка Java, характеристики и свойства имеющейся виртуальной машины и минимальные библиотеки Java, которые поддерживаются. Разработчики программного обеспечения могут рассчитывать, что определенный уровень системной поддержки будет доступен для семейства устройств, которое использует определенную конфигурацию.
Конфигурация также определяет минимальный набор свойств для категории устройств. Производители устройств внедряют профили для обеспечения реальной платформы для семейства устройств, которая имеет возможности, определяемые данной конфигурацией.
Другой строительный блок J2ME, профиль, определяет программный интерфейс для определенного класса устройств. Реализация профиля состоит из набора библиотек классов Java, которые обеспечивают интерфейс программного уровня. Таким образом, профиль теоретически должен определять все виды функциональных возможностей и служб.
Однако это не является намерением создателей. Создатели J2ME планируют, что профиль будет предназначаться для нужд определенной категории устройств или вертикального рынка, относящегося к этой категории устройств. Мысль заключается не в том, чтобы помещать огромное количество несвязанных свойств программного уровня в профиль. Скорее основная цель заключается в том, чтобы гарантировать возможность взаимодействия — которая необязательно предполагает совместимость конечных продуктов различных производителей — между всеми устройствами одной категории или семействами вертикального рынка для определения стандартной платформы разработки приложений на Java.
Например, профиль может поддерживать возможность сетевой коммуникации для популярного стандарта Short Message Service (SMS), широко используемого в мобильных телефонах. Поскольку стандарт SMS является повсеместно распространенным свойством в сотовой телефонии, имеет смысл задать эту службу в профиле, который предназначен для мобильных телефонов, вместо того чтобы встраивать ее в конфигурацию.
Профиль внедряется поверх конфигурации, на одну ступень ближе к выполнению практических приложений. Обычно профиль включает библиотеки, которые соответствуют более специфичным характеристикам категории устройств, которую они представляют, чем библиотеки, которые содержат конфигурации. Приложения затем встраиваются поверх конфигурации и профиля, они могут использовать только библиотеки классов, предоставляемые этими двумя низкоуровневыми спецификациями. Профили могут быть встроены поверх друг друга. Конечный продукт платформы J2ME, однако, может содержать только одну конфигурацию. На рисунке 1.1 показаны схематичные уровни, из которых состоит платформа J2ME
Java-приложение
Профиль
Конфигурация: Библиотеки
Виртуальная Машина Java [JVM]
Операционная система компьютера
Аппаратное обеспечение устройства
Рисунок 1.1. Платформа J2ME состоит из ряда уровней, которые поддерживают базовую среду исполнения с корневыми библиотеками Java и Виртуальной машиной (VM), набора программных интерфейсов приложения системного уровня (API) в конфигурации и набора API программного уровня в профиле
Конфигурации и профили
Конфигурация включает три базовых элемента:
— набор свойств языка программирования Java;
— набор свойств виртуальной машины Java;
— набор поддерживаемых библиотек Java и программных интерфейсов приложения (API).
Создатели J2ME определили только две конфигурации для избежания фрагментированного представления несовместимых платформ. Две конфигурации, которые существуют в настоящее время, представляют две категории портативных устройств, описанных ранее в этой главе, а именно: