Платформа Java, Micro Edition или Java ME - это вычислительная платформа для разработки и развертывания переносимого кода для встроенных и мобильных устройств (микроконтроллеры, датчики, шлюзы, мобильные телефоны, персональные цифровые помощники, ТВ-приставки, принтеры). Java ME ранее была известна как Java 2 Platform, Micro Edition или J2ME .
. Платформа использует объектно-ориентированный язык программирования Java. Это часть семейства программных платформ Java . Java ME была разработана Sun Microsystems, приобретенной Oracle Corporation в 2010 году; платформа заменила аналогичную технологию PersonalJava. Первоначально разработанный в рамках процесса сообщества Java как JSR 68, различные разновидности Java ME развились в отдельные JSR. Oracle предоставляет эталонную реализацию спецификации, но, как правило, не предоставляет бесплатные двоичные реализации своей среды выполнения Java ME для мобильных устройств, а полагается на сторонние организации, которые предоставят свои собственные.
По состоянию на 22 декабря 2006 г. исходный код Java ME находится под лицензией Стандартной общественной лицензии GNU и выпущен под названием проекта phoneME.
С 2008 г., все платформы Java ME в настоящее время ограничены функциями JRE 1.3 и используют эту версию формата файла классов (внутренне известную как версия 47.0). Если Oracle когда-либо объявит новый раунд версий конфигурации Java ME, которые поддерживают более поздние форматы файлов классов и языковые функции, например, соответствующие JRE 1.5 или 1.6 (в частности, generics ), это повлечет за собой дополнительную работу над часть всех поставщиков платформы обновляет свои JRE.
Устройства Java ME реализуют профиль. Наиболее распространенными из них являются Профиль мобильного информационного устройства, предназначенный для мобильных устройств, таких как сотовые телефоны, и Персональный профиль, предназначенный для потребительских товаров и встроенных устройств, таких как set- приставки и КПК. Профили - это подмножества конфигураций, которых в настоящее время два: Конфигурация подключенного ограниченного устройства (CLDC) и Конфигурация подключенного устройства (CDC).
Существует более 2,1 миллиарда мобильных телефонов и КПК с поддержкой Java ME. Он популярен в устройствах стоимостью менее 50 фунтов стерлингов, таких как Smart Feature OS от Nokia. Он также использовался в операционной системе Bada и в ОС Symbian вместе с собственным программным обеспечением. Пользователи Windows CE, Windows Mobile, Maemo, MeeGo и Android могут загрузить Java ME для своих среды («доказательство концепции» для Android).
Конфигурация подключенного ограниченного устройства (CLDC) содержит строгую подмножество библиотек классов Java, и это минимальный объем, необходимый для работы виртуальной машины Java. CLDC в основном используется для классификации множества устройств с фиксированной конфигурацией.
Конфигурация предоставляет базовый набор библиотек и функций виртуальных машин, которые должны присутствовать в каждой реализации среды J2ME. В сочетании с одним или несколькими профилями Connected Limited Device Configuration дает разработчикам надежную платформу Java для создания приложений для потребительских и встроенных устройств. Конфигурация разработана для устройств с общим объемом памяти от 160 КБ до 512 КБ, которые имеют минимум 160 КБ ПЗУ и 32 КБ ОЗУ, доступные для платформы Java.
Разработанный для мобильных телефонов, Профиль мобильного информационного устройства включает графический интерфейс, а также API хранилища данных и MIDP 2.0 включает базовый 2D-игровой API. Приложения, написанные для этого профиля, называются MIDlet. Почти все новые сотовые телефоны поставляются с реализацией MIDP, и теперь это де-факто стандарт для загружаемых игр для мобильных телефонов. Однако многие мобильные телефоны могут работать только с теми MIDlet, которые были одобрены оператором связи, особенно в Северной Америке.
JSR 271: Профиль мобильного информационного устройства 3 (окончательный выпуск от 9 декабря 2009 г.) определил мобильное устройство 3-го поколения. Информационный профиль устройства (MIDP3), расширяющий функциональные возможности во всех областях, а также улучшающий взаимодействие между устройствами. Ключевой целью разработки MIDP3 является обратная совместимость с содержимым MIDP2.
Профиль информационного модуля (IMP) - это профиль для встроенных «безголовых» устройств, таких как торговые автоматы, встроенные промышленные приложения, системы безопасности и т. Д. и аналогичные устройства с простым дисплеем или без него и с некоторыми ограниченными возможностями подключения к сети.
Первоначально представленный Siemens Mobile и Nokia как JSR -195, IMP 1.0 является строгим подмножеством MIDP 1.0, за исключением того, что он не включает пользовательский интерфейс API - другими словами, он не включает поддержку пакета Java javax.microedition.lcdui
. JSR-228, также известный как IMP-NG, представляет собой следующее поколение IMP, основанное на MIDP 2.0, использующее новые типы безопасности и сетевые типы и API-интерфейсы MIDP 2.0, а также другие API-интерфейсы. такие как PushRegistry
и platformRequest ()
, но опять же, он не включает интерфейсы API пользовательского интерфейса или игровой API.
Конфигурация подключенного устройства - это подмножество Java SE, содержащее почти все библиотеки, не связанные с графическим интерфейсом пользователя. Он богаче, чем CLDC.
Базовый профиль - это профиль конфигурации подключенного устройства Java ME (CDC). Этот профиль предназначен для использования на устройствах, которым требуется полная реализация виртуальной машины Java, включая всю платформу Java Platform, Standard Edition API. Типичные реализации будут использовать некоторое подмножество этого набора API в зависимости от поддерживаемых дополнительных профилей. Эта спецификация была разработана в рамках процесса сообщества Java.
Персональный базовый профиль расширяет основной профиль, включая поддержку облегченного графического интерфейса в форме подмножества AWT. Это платформа, на которой построен BD-J.
Sun предоставляет эталонную реализацию этих конфигураций и профилей для MIDP и CDC. Начиная с JavaME 3.0 SDK, IDE на основе NetBeans будет поддерживать их в одной среде IDE.
В отличие от многочисленных бинарных реализаций платформы Java, созданных Sun для серверов и рабочих станций, Sun не предоставляет никаких бинарных файлов для платформ целей Java ME, за исключением MIDP 1.0 JRE (JVM) для Palm OS. Sun не предоставляет J2ME JRE для устройств на базе Microsoft Windows Mobile (Pocket PC), несмотря на открытую кампанию в Sun по выпуску внутренней реализации PersonalJava, известной под кодовым названием. "Капитан Америка". Сторонние реализации широко используются поставщиками Windows Mobile.
Операционные системы, нацеленные на Java ME, были реализованы DoCoMo в форме DoJa и SavaJe как ОС SavaJe. Последняя компания была приобретена Sun в апреле 2007 года и теперь составляет основу Sun JavaFX Mobile.
. Mika VM с открытым исходным кодом направлена на реализацию JavaME CDC / FP, но не сертифицирована как такие (за сертифицированные реализации требуются отчисления, что непрактично для проекта с открытым исходным кодом). Следовательно, устройствам, использующим эту реализацию, не разрешается заявлять о совместимости с JavaME CDC.
В операционной системе Android на базе Linux используется проприетарная версия Java, которая похожа, но не идентична Java Me.
JSR # | Имя | Описание |
---|---|---|
68 | Спецификация платформы J2ME | |
30 | CLDC 1.x | |
37 | MIDP 1.0 | |
118 | MIDP 2.x | |
139 | CLDC 1.1 | |
271 | MIDP 3.0 | Только Java ME 3.4 и более ранние версии, последняя спецификация для мобильных телефонов, функции языка Java как Java SE 1.3 |
360 | CLDC 8 | Новое в Java ME 8 |
361 | MEEP 8 | Новое в Java ME 8, языковая функция как Java SE 8, для устройств Internet of Everything |
JSR # | Имя | Описание | MSA |
---|---|---|---|
75 | File Connection and PIM API | Файловая система, контакты, календарь, для -do | |
82 | Bluetooth | Связь через последовательный порт Bluetooth и обмен файлами (OBEX) | |
120 | Wireless Messaging API (WMA) | ||
135 | Mobile Media API (MMAPI) | Аудио, видео, мультимедиа | |
172 | Веб-службы API | XML-анализаторы и RPC | |
177 | API служб безопасности и доверия (SATSA) | APDU, Java Card RMI (JCRMI), инфраструктура открытых ключей (PKI) и криптография | |
179 | Location API | GPS-координаты, адреса, датчики ориентации, магазины ориентиров | |
180 | SIP API | ||
184 | Mobile 3D Graphics (M3G) | Трехмерная графика высокого уровня | |
185 | Технология Java для беспроводной индустрии (JTWI) | Общие | |
205 | Wireless Messaging API (WMA) 2.0 | Отправка и получение SMS и MMS | |
211 | Content Handler API (CHAPI) | ||
226 | Scalable 2D Vector Graphics API for J2ME (M2G) | Handling SVG Tiny | |
228 | Профиль информационного модуля - новое поколение (IMP NG) | ||
229 | Платежный API | ||
234 | Расширенные мультимедийные приложения (AMMS) | Расширения MMAPI | |
238 | Mobile Internationalization API | Локализованные ресурсы, региональные даты и форматирование чисел, сравнение языковых стандартов строк | |
239 | Java-привязки для OpenGL ES API | ||
248 | Архитектура мобильных сервисов (MSA) | ||
253 | API мобильной телефонии | ||
256 | API мобильных датчиков | Считывание значений с акселерометров, гироскопов, компасов, термометров, барометров, и некоторые другие | |
257 | API бесконтактной связи | ||
258 | API настройки мобильного интерфейса пользователя | ||
272 | API службы мобильного вещания для портативных терминалов | ||
280 | XML API для Java ME | ||
281 | API служб IMS | ||
287 | API 2.0 масштабируемой 2D векторной графики для Java ME | ||
293 | API местоположения 2.0 | ||
298 | API телематики для Java ME | ||
300 | DRM API для Java ME | ||
325 | IMS Communication Enablers |
JSR # | Имя | Описание |
---|---|---|
297 | Mobile 3D Graphics API (M3G) 2.0 |
Консорциум ESR посвящен стандартам для встроенной Java. Особенно экономичные стандарты. Типичные области применения: промышленный контроль, межмашинное взаимодействие, медицина, электронные измерения, домашняя автоматизация, потребитель, интерфейс человек-машина,...
ESR # | Имя | Описание |
---|---|---|
001 | B-ON (Beyond CLDC) | B-ON служит очень надежной основой для реализации встроенного программного обеспечения Java. Он определяет надежную фазу инициализации устройства Java и 3 типа объектов: неизменяемые, бессмертные и обычные (смертные) объекты. |
002 | MicroUI | MicroUI определяет расширенную архитектуру, позволяющую создать открытую стороннюю среду разработки приложений для встроенных устройств HMI. Такие устройства обычно имеют некоторую форму дисплея, некоторые датчики ввода и, возможно, некоторые возможности воспроизведения звука. Эта спецификация охватывает потенциально широкий набор устройств. |
011 | MWT | MWT определяет три различные роли: дизайнеры виджетов, дизайнеры внешнего вида и дизайнеры приложений. MWT позволяет двоичному приложению HMI работать одинаково на всех устройствах, которые обеспечивают совместимую структуру MWT (встроенные устройства, сотовые телефоны, телевизионные приставки, ПК и т. Д.), Что обеспечивает истинную согласованность и повсеместность приложений во всех линейках продуктов ( ME, SE, EE). |
015 | ECLASSPATH | ECLASSPATH объединяет среды выполнения CLDC, CDC, Foundation, SE и EE с набором из около 300 классов API. Компиляция с использованием CLDC1.1 / ECLASSPATH делает двоичный код переносимым во все среды выполнения Java. |
В Викиучебниках есть книга по темам: Программирование J2ME |