Connected Limited Device Configuration ( CLDC ) является спецификацией основы для Java ME приложений , описывающих базовый набор библиотек и функций виртуальных машин , которые должны присутствовать в реализации. CLDC сочетается с одним или несколькими профилями, чтобы дать разработчикам платформу для создания приложений на встроенных устройствах с очень ограниченными ресурсами, таких как пейджеры и мобильные телефоны . [1] CLDC был разработан в рамках процесса сообщества Java как JSR 30 [2] (CLDC 1.0) и JSR 139 [3] (CLDC 1.1).
Типичные требования
CLDC разработан для устройств с ограниченной вычислительной мощностью, памятью и графическими возможностями. Обычно устройства имеют следующие функции: [1]
- 16- битный или 32-битный процессор с тактовой частотой 16 МГц или выше
- Не менее 160 КБ ПЗУ выделено для библиотек CLDC и виртуальной машины.
- По крайней мере 8 KB общей оперативной памяти доступной для платформы Java
- Низкое энергопотребление, часто работает от батареи
- Возможность подключения к какой-либо сети, часто с беспроводным, прерывистым подключением и ограниченной пропускной способностью
Примечательные ограничения
По сравнению со средой Java SE несколько API-интерфейсов полностью отсутствуют, а некоторые API-интерфейсы изменены таким образом, что код требует явных изменений для поддержки CLDC. В частности, некоторые изменения касаются не только отсутствия классов или интерфейсов, но фактически изменяют сигнатуры существующих классов в библиотеке базовых классов. Примером этого является отсутствие Serializable
интерфейса, который не отображается в библиотеке базовых классов из-за ограничений на использование отражения. Следовательно, все java.lang.*
классы, которые обычно реализуют Serializable
, не реализуют этот интерфейс тегирования .
Другие примеры ограничений зависят от используемой версии, так как некоторые функции были повторно представлены в версии 1.1 CLDC. [4]
CLDC 1.0 и 1.1
Serializable
Интерфейс не поддерживается.- Части возможностей отражения стандартной версии Java:
java.lang.reflect
Пакет и любой из его классов не поддерживается.- Методы, для
java.lang.Class
которых создаются конструкторы, методы или поля.
- Без доработки. CLDC не включает
Object.finalize()
метод. - Ограниченная обработка ошибок. Ошибки, не связанные с выполнением, обрабатываются путем завершения работы приложения или перезагрузки устройства.
- Нет определяемых пользователем загрузчиков классов
- Нет групп потоков или потоков демонов.
Профили
Профиль - это набор API-интерфейсов, которые поддерживают устройства с различными возможностями и ресурсами в рамках среды CLDC, чтобы обеспечить полную среду приложения Java. Существуют специальные профили для различных устройств, от торговых автоматов до телевизионных приставок, причем профиль мобильного телефона MIDP является наиболее распространенным. [5]
Профиль мобильного информационного устройства
Профиль Mobile Information Device представляет собой профиль , предназначенный для мобильных телефонов. Доступны две версии MIDP, указанные в JSR 37 [6] [7] (MIDP 1.0) и JSR 118 [8] [9] (MIDP 2.0). Обе версии предоставляют ориентированный на ЖК-дисплей GUI API, а MIDP 2.0 включает базовый игровой API для 2D. Приложения, написанные для использования этого профиля, называются мидлетами . Многие сотовые телефоны поставляются с реализацией MIDP, и это популярная платформа для загружаемых игр для мобильных телефонов. [10]
Профиль информационного модуля
Профиля Информационного модуля указана в JSR 195 [11] и предназначена для торговых автоматов , сетевые карты, маршрутизаторы, телефонные коробки и другие системы с простым или без дисплея и какой - либо формы ограниченного доступа два способа сети. Определены только API для создания приложений, хранения и доступа к сети. Это подмножество пакетов javax.microedition.io, rms и midlet в MIDP. Siemens Mobile и Nokia представили эту спецификацию JCP.
DoJa Профиль
DoJa профиль был разработан для DoCoMo «s я режим мобильного телефона от NTT DoCoMo .
Профиль цифровой приставки
Digital Set Top Box профиль, указанный в JSR 242, [12] предназначен для кабельного рынка. Этот профиль, также называемый OnRamp , основан на подмножестве платформы приложений OpenCable ( OCAP ), которая определяет набор API-интерфейсов для разработки приложений для телевизионных приставок и подобных устройств. Профиль состоит из подмножеств из личного базового профиля CDC, включая поддержку AWT , Xlet , доступа к файлам и сетевых API, а также нескольких интерфейсов, связанных с мультимедиа, из OCAP. Полный профиль включает 31 пакет Java и около 1500 API. [5]
Дополнительные пакеты
В КПК Дополнительные пакеты указаны в JSR-75 [13] и предназначены для КПК , таких как Palm , или Windows CE устройств. В спецификации определены два независимых пакета, которые представляют важные функции, имеющиеся на многих КПК и других мобильных устройствах. Эти пакеты:
- Управление личной информацией (PIM), которое дает устройствам доступ к данным управления личной информацией, содержащимся в адресных книгах, календарях и списках дел.
- FileConnection (FC), который обеспечивает доступ к файловым системам и съемным устройствам хранения, таким как внешние карты памяти.
Общие API
java.io
- Оптимизированная версия пакета java.io из стандартной версии для выполнения операций ввода / вывода.
java.lang
- Содержит классы, необходимые для языка Java. Этот пакет содержит стандартные типы Java, такие как целые числа и строки, а также основные исключения, математические функции, системные функции, функции потоковой передачи и функции безопасности.
java.util
- Оптимизированная версия
java.util
библиотеки коллекций. Этот пакет содержит классы коллекции, такие как Vector и Hashtable . Он также содержит календарь и класс даты.
Смотрите также
- Конфигурация подключенного устройства или CDC , еще одна структура для создания приложений Java ME
Рекомендации
- ^ a b Обзор CLDC http://java.sun.com/javame/technology/cldc/overview.jsp
- ^ JSR 30, CLDC 1.0 http://www.jcp.org/en/jsr/detail?id=30
- ^ JSR 139, CLDC 1.1 http://www.jcp.org/en/jsr/detail?id=139
- ^ API-интерфейсы J2ME: какие API-интерфейсы поступают из платформы J2SE? http://developers.sun.com/mobility/midp/articles/api/
- ^ a b Сводка профилей на основе CLDC http://developers.sun.com/mobility/midp/ttips/cldc/
- ^ JSR 37, MIDP 1.0 http://www.jcp.org/en/jsr/detail?id=37
- ^ MIDP 1.0 API http://java.sun.com/javame/reference/apis/jsr037/
- ^ JSR 118, MIDP 2.0 http://www.jcp.org/en/jsr/detail?id=118
- ^ MIDP 2.0 API http://java.sun.com/javame/reference/apis/jsr118/
- ^ На мобильных платформах pocketgamer.co.uk есть http://www.pocketgamer.co.uk/r/Mobile/feature.asp?c=1266
- ^ JSR 195, Профиль информационного модуля http://www.jcp.org/en/jsr/detail?id=195
- ^ JSR 242, Профиль цифровой приставки http://www.jcp.org/en/jsr/detail?id=242
- ^ JSR 75, Дополнительные пакеты для КПК http://www.jcp.org/en/jsr/detail?id=75
Внешние ссылки
- Домашняя страница CLDC
- Консорциум ESR
- CLDC-фреймворк на основе OSGi