Аудитория
Эта книга предназначена для разработчиков на Java. Она подходит для профессиональных разработчиков программного обеспечения, а также для продвинутых студентов, аспирантов. Если быть более точным, создатели этой книга ожидают, что читатель хорошо знает язык программирования Java, но не приобрел опыта в программировании с отдельными API сверх основных API Java. Несмотря на возможное отсутствие опыта в какой-либо отдельной области программирования на Java, кроме хорошего знания языка, будет полезно, если читатели имеют, по крайней мере, представление о понятиях и профессиональных выражениях, которые окружают различные технологии Java, как, например, термины, которые связаны с виртуальными машинами, сборкой мусора, загрузкой классов, верификацией классов, интерфейсами родного кода, синхронной компиляцией, AWT, RMI, JDK, JRE и так далее.
Я также предполагаю, однако, что читатель имеет порядочный опыт в объектно-ориентированном программировании. По этой причине я не объясняю объектно-ориентированных понятий, когда они появляются в процессе описания J2ME API, классов, идиом программирования и тому подобного.
Конечно, чем больше у читателя опыта, тем лучше. Во всей книге появляются различные ссылки на 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МЕ-модуля конфигурации и профили.
Конфигурации и профили являются основными элементами, которые составляют модульную схему J2ME. Эти два элемента дают возможность поддержки огромного количества устройств, которые поддерживают J2ME.
Конфигурация J2ME определяет минимальную Java-платформу для семейства устройств. Все члены данного семейства имеют сходные требования к памяти и производительности. Конфигурация является на самом деле спецификацией, которая определяет доступные ресурсы системного уровня, такие, как набор свойств языка Java, характеристики и свойства имеющейся виртуальной машины и минимальные библиотеки Java, которые поддерживаются. Разработчики программного обеспечения могут рассчитывать, что определенный уровень системной поддержки будет доступен для семейства устройств, которое использует определенную конфигурацию.
Конфигурация также определяет минимальный набор свойств для категории устройств. Производители устройств внедряют профили для обеспечения реальной платформы для семейства устройств, которая имеет возможности, определяемые данной конфигурацией.
Другой строительный блок J2ME, профиль, определяет программный интерфейс для определенного класса устройств. Реализация профиля состоит из набора библиотек классов Java, которые обеспечивают интерфейс программного уровня. Таким образом, профиль теоретически должен определять все виды функциональных возможностей и служб.
Однако это не является намерением создателей. Создатели J2ME планируют, что профиль будет предназначаться для нужд определенной категории устройств или вертикального рынка, относящегося к этой категории устройств. Мысль заключается не в том, чтобы помещать огромное количество несвязанных свойств программного уровня в профиль. Скорее основная цель заключается в том, чтобы гарантировать возможность взаимодействия — которая необязательно предполагает совместимость конечных продуктов различных производителей — между всеми устройствами одной категории или семействами вертикального рынка для определения стандартной платформы разработки приложений на Java.