- PVSM.RU - https://www.pvsm.ru -
В данной статье рассматривается виртуальная Java-машина CLDC HI с открытым исходным кодом компании Sun для встраиваемых и мобильных платформ, а также её построение для вычислительных машин с архитектурой ARM.
Connected Limited Device Configuration HotSpot™ Implementation Virtual Machine (CLDC HI VM) — высокопроизводительная виртуальная Java машина для устройств, ограниченных в ресурсах, разрабатываемая компанией Oracle (бывшей Sun). Это одна из виртуальных машин для «малых» устройств, позволяющая запускать J2ME-приложения на устройствах с ограниченным объемом памяти и вычислительной мощностью, например, на мобильных телефонах, КПК, платежных терминалах и т.д.
CLDC HI JVM является оптимизированной виртуальной машиной, которая обеспечивает более быстрое исполнение байт-кода и более эффективное использование ресурсов по сравнению с другими доступными виртуальными машинами, такими как Squawk, KVM, Maxine, CVM и пр. Стоит отметить, что данная Java-машина ориентирована главным образом на ARM процессоры.
Как отдельный продукт она не поставляется, но входит в несколько решений для производителей соответствующей аппаратуры. Одна из версий этой виртуальной машины разрабатывалась компанией Sun под лицензией GPLv2, т.е. с открытым исходным кодом (также проект носит имя PhoneME Feature). Однако документации по сборке и запуску этой виртуальной машины в публичном доступе практически нет, и её разработка и поддержка практически были остановлены Oracle'ом после поглощения компании Sun.
Поэтому в данной статье приводится краткое описание самой CLDC HI и её сборки + подробные инструкции сборки по ссылке ниже.
Устройства, на которых может работать J2ME-приложение, определяются поддерживаемой конфигурацией и профилем платформы. Конфигурация описывает только низкоуровневую часть платформы: возможности языка Java, его виртуальной машины, и базовые классы.
В настоящее время существуют две конфигурации для платформы Java ME:
Более высокоуровневой частью платформы является профиль. Предполагается, что профиль будет задаваться для каждого крупного класса устройств (мобильные телефоны, игровые автоматы, бытовые приборы). Т.е. профиль определяет тип устройств, поддерживаемых приложением. Профиль дополняет конфигурацию специфическими классами, определяющими область применения устройств.
В J2ME определено два профиля, построенных на основе CLDC: KJava и Mobile Information Device Profile (MIDP). Для CDC доступен шаблонный профиль, на котором можно строить свои собственные, Foundation Profile.
Платформа, состоящая из CLDC и MIDP, достаточно распространена на рынке мобильных телефонов. Стоит отметить, что CLDC HI также основывается на конфигурации CLDC 1.1(JSR 118) и профиле MIDP 2.1 (JSR 139).
Данная виртуальная машина оказывается очень полезной, когда необходимо перенести мобильное приложение на устройство, не поддерживающее Java платформу. Поэтому в данной статье приводится описание сборки Java-машины CLDC HI, включающее:
Собственно идем в репозиторий проекта PhoneME [3], структура которого отображена ниже, и берем необходимые базовые компоненты: cldc, midp, pscl, tools. Если нужно расширить функционал работы Java-машины, то берем из репозитория соответствующие JSR пакеты. Они будут собираться вместе с midp.
Основные этапы построения CLDC HI:
С более детальной инструкцией по сборке на Linux'е под ARM можете ознакомиться здесь: сборка CLDC HI [4]
После успешной сборки имеем output, содержащий собранные компоненты, которые потом переносим на целевое устройство.
В качестве целевого устройства для проверки работоспособности использовался одноплатный компьютер Raspberry Pi с ARM процессором.
На вход JVM подается jar-файл, который в свою очередь обрабатывает установщик Midlet’ов и выдает индивидуальный номер для каждого приложения (подробнее см. сборка CLDC HI [4]). После чего запускается CLDC HI JVM с номером приложения и создается frameBuffer, в который выводится изображение экрана устройства.
Далее продемонстрирована работа java-игры змейка с помощью CLDC HI на Raspberry Pi.
P.S.: статья написана по результатам курсовой работы на Математико-механическом факультете СПбГУ.
Выполнила Сарманова С.Г.
Научный руководитель Полозов В.С.
Автор: SnezhanaS
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/37652
Ссылки в тексте:
[1] CDC — Connected Device Configuration : http://en.wikipedia.org/wiki/Connected_Device_Configuration
[2] CLDC — Connected Limited Device Configuration: http://en.wikipedia.org/wiki/Connected_Limited_Device_Configuration
[3] репозиторий проекта PhoneME : http://java.net/projects/phoneme
[4] сборка CLDC HI: http://docs.google.com/file/d/0B5esNIOIEJvHRVVJUkVmMXZFeGs/edit?usp=sharing
[5] Источник: http://habrahabr.ru/post/184952/
Нажмите здесь для печати.