Java 2 Micro Edition (J2ME)

Язык  программирования  Java  был  создан  в  1995  году  компанией Sun Microsystems. Разработан он для того, чтобы программы написанные программистами один раз могли бы работать на разных типах мобильных  устройств.  В 1998  году  произошло  разделение  языка  Java  на Standard Edition (J2SE), который предназначается для обычных компьютеров, Enterprise Edition (J2EE), используемый на серверах, и Micro Edition (J2ME), который и устанавливается в мобильные устройства.

Как  уже  говорилось  в  первой главе,  основным  отличием мобильных телефонов от смартфонов и коммуникаторов является то, что все они работают не под управлением полноценной мобильной ОС, а под управлением прошивки и установка каких-либо новых программ невозможна. Однако решение было найдено именно с помощью Java ME.

Идея Java состоит в том, что команды отдаются не напрямую процессору, а виртуальной Java-машине (JVM – Java Virtual Machine). Вместо команд процессора программа на Java представляет собой байт-код – команды, которые должна выполнять Java-машина. Соответственно, для работы программы достаточно, чтобы в системе была установлена Java-машина. Решением поддержки приложений в сотовых телефонах стала установка  в  прошивки  виртуальной  Java  ME  машины  под  названием KVM – Kilobyte Virtual Machine.

Для программ, которые рассчитаны на Java ME, есть особое название – мидлет. Мидлеты распространяются не в виде разрозненных файлов, а в виде специальных архивов JAR – Java Archive. В нем хранятся все файлы программы: .class (они содержат байт-код), файлы ресурсов например, картинки или звуки) и файл-манифест, описывающий программу: название, производитель, версия и другие данные.

Функционал  телефонов  может  серьезно  отличаться,  поэтому  для Java ME существует целый ряд различных API. Базовый API, на котором строятся все остальные, – это либо CDC (Connected Device Configuration), либо CLDC (Connected Limited Device Configuration). Для смартфонов, коммуникаторов и КПК предназначен CDC, как более функциональный; для мобильников – CLDC.

Поскольку сотовые телефоны отличаются по устройству от компьютеров, потребовался API, обеспечивающий работу GUI и хранение настройки приложений и поддержку других специфических для мобильников возможностей. Эту задачу берет на себя API под названием Mobile  Information  Device  Profile  (MIDP).  На  данный  момент  существует несколько версий: MIDP 1.0 был создан еще в 2000 году и накладывал ряд серьезных ограничений, поэтому в 2002 была выпущена новая версия – MIDP 2.0, использующаяся до сих пор.

Необходимо  отметить,  что  список  встраиваемых  в  телефоны  API не ограничивается CLDC и MIDP. Существует целый ряд спецификаций мобильных стандартов Java, разработанных по запросам на спецификацию (JSR – Java Specification Request), которые также реализованы в качестве API и обычно носят номер соответствующего им запроса.

Возможности Java ME

Возможности  каждого  отдельного  телефона  можно  описать  несколькими параметрами, самым главным из которых будут поддерживаемые  API.  Основные  API  –  это  уже  описанные  CLDC  и  MIDP.

Но кроме них есть и множество других. Некоторые используются широко, некоторые – не очень.

Например,  заявленная  поддержка  Java  3D  для  телефона  означает поддержку JSR 184 – Mobile 3D Graphics API (сокращенно M3G), а за возможности работы java-мидлета с видео и аудио отвечает JSR 135 – Mobile Media API.

Преимущества и недостатки Java ME

Java обладает следующими достоинствами:

·     Один из главных плюсов Java ME – полное отсутствие вирусов и червей и очень небольшие возможности для троянских программ. Если исключить случаи некорректной реализации Java-машин, существование вирусов и червей на Java ME принципиально невозможно. Дело в том, что для всех Java-машин на современных телефонах такие действия, как посылка sms или передача данных через Bluetooth должны подтверждаться пользователем, что практически блокирует любые возможности по работе на java-машине вредоносного кода.

·     Другой плюс Java ME – гибкость реализации. Каждый производитель  решает,  какой  именно  функционал  поддерживается  тем  или иным телефоном. С другой стороны, это создает определенные сложности для разработки мидлетов из-за большого разнообразия аппаратов.

Недостатки Java:

·     Работа с устройством через API. В обычной программе, которая выполняется через API операционной системы, команды выполняются процессором, и тут контроль над действиями программы никто не осуществляет.  Возможности  Java  сильно  ограничены  заложенными  API и если аппарат не обладает нужной функциональностью, то сделать ничего нельзя.

·     Другой минус кроется в CLDC, являющейся сокращенной версией API Java SE. Этот API был разработан как набор базовых функций для  телефонов,  поэтому  функциональность  API  была  серьезно  урезана. В настоящее  время  практически  все  телефоны  поддерживают  MIDP  2.0, заметно более требовательный к аппаратному обеспечению, однако это не привело к появлению новых версии CLDC.

С этим связан и еще один недостаток: в отличие от Java SE, где постоянно совершенствуются сами возможности языка, добавляются новые средства, мобильная Java не изменяется со времени создания версии 3.  

·



Последнее изменение: Monday, 24 February 2020, 23:16