Конфигурация Connected Device Configuration (CDC)
Конфигурация Connected Device Configuration (CDC) предназначена лишь для фиксирования основных возможностей каждого вида устройств в категории устройств, для которой она предназначена, а именно, устройств с 2МБ или более полной памяти, включая как RAM, так и ROM.
Как вы видели на рисунке 1.1, конфигурация задает как набор поддерживаемых свойств виртуальной машины Java, так и набор библиотек классов. В CDC определено использование виртуальной машины полной платформы Java 2, которая, в этом контексте, называется компактной виртуальной машиной (Compact Virtual Machine (CVM)).
CVM. Хотя CVM поддерживает те же свойства, что и J2SE VM, она создана для потребительских и встраиваемых устройств. Это означает, что стандарт VM J2SE был модернизирован, чтобы соответствовать ограничениям устройств с ограниченными ресурсами. Сюда включены следующие свойства получившегося в результате продукта CVM:
— улучшенная запоминающая система;
— небольшие временные интервалы сборки мусора в среднем;
— полное отделение виртуальной машины от системы памяти;
— модульные сборщики мусора;
— сборка мусора по поколениям.
В частности, CVM была спроектирована с учетом предоставления следующих свойств:
— портативность;
— быстрая синхронизация;
— выполнение классов Java отдельно от постоянной памяти (ROM);
— поддержка естественных потоков
— зоны обслуживания малых классов;
— предоставление интерфейсов и поддержка служб операционной системы реального времени (RTOS);
— преобразование потоков Java непосредственно в естественные потоки;
— поддержка всех свойств и библиотек виртуальной машины версии 1.3, Java 2: безопасность, слабые ссылки, Java Native Interface (JNI, собственный интерфейс Java), Remote Method Invocation (RMI, интерфейс вызова удаленных методов), Java Virtual Machine Debugging Interface (JVMDI, интерфейс отладки виртуальной машины Java).
Библиотеки классов в CDC. CDC устанавливает минимальный набор библиотек классов и API. Она поддерживает следующие стандартные пакеты Java:
— java.lang — системные классы виртуальной машины Java; java.util — базовые утилиты Java;
— java.net — дейтаграмма Universal Datagram Protocol (UDP) и ввод/вывод (I/O);
— java.io — файловый ввод/вывод Java;
— Java.text — самая минимальная поддержка интернационализации (I18N — смотри главу 9);
— Java.security — минимальная защита на мелком уровне и шифрование сериализации объекта.
Как вы можете видеть, эти API не включают полный набор пакетов набора инструментальных средств разработки программного обеспечения (software development kit (SDK)) Java 2. В некоторых случаях эти пакеты и классы являются подгруппами пакетов и классов Java 2 SDK. Также убраны все устаревшие API J2SE. В таблице 1.1 перечислен полный набор пакетов, поддерживаемых CDC.
Таблица 1.1. Пакеты CDC
Название пакета CDC — Описание
java.io— Стандартные классы и интерфейсы ввода/вывода
java.lang— Классы виртуальной машины
java.lang.ref— Классы для работы с ссыпками на объекты
Java.lang.reflect— Классы и интерфейсы, поддерживающие отражение (динамическую информацию о классах)
Java.math— Математический пакет
Java.net— Сетевые классы и интерфейсы
Java.security— Классы и интерфейсы безопасности
Java security.cert— Классы сертификации безопасности
Java.text— Текстовой пакет
Java.util— Классы стандартных утилит
Java.util.jar— Классы утилиты архиватора Java (JAR)
Java.util.zip— Классы утилиты ZIP
javax.microedition.io— Классы и интерфейсы структуры общих соединений CDC
Профиль Foundation Profile. Конфигурация вместе с профилем формирует исполняемую среду J2ME. Свойства и службы системного уровня, поддерживаемые конфигурацией, более или менее спрятаны от разработчика приложений. В действительности разработчику приложения запрещен прямой доступ к ним. Если это не было соблюдено, приложение не будет считаться соответствующим требованиям J2ME.
С точки зрения программиста профиль необходим для «полезной» работы. Профиль определяет уровень, который содержит АРГи, с которыми программист обычно имеет дело. Создатели J2ME в начале задали один профиль CDC, профиль Foundation, который основан на выпуске J2SE версии 1.3. Он был разработан стандартным комитетом Java Community Process, экспертной группой компаний, работающих в сфере потребительских электронных товаров. Профиль Foundation содержит в себе пакеты J2SE, перечисленные в таблице 1.2.
Таблица 1.2. Пакеты профиля Foundation
Читать дальше