Создание Реализации Cldc Hotspot Для Arm

В этой статье обсуждается виртуальная машина Sun CLDC HI Java с открытым исходным кодом для встраиваемых и мобильных платформ, а также ее конструкция для компьютеров с архитектурой ARM.



CLDC ПРИВЕТ
Виртуальная машина реализации HotSpot с ограниченной конфигурацией подключенного устройства (CLDC HI VM) — это высокопроизводительная виртуальная машина Java для устройств с ограниченными ресурсами, разработанная Oracle (ранее Sun).

Это одна из виртуальных машин для «маленьких» устройств, позволяющая запускать J2ME-приложения на устройствах с ограниченной памятью и вычислительной мощностью, например, на мобильных телефонах, КПК, платежных терминалах и т.п.

CLDC HI JVM — оптимизированная виртуальная машина, обеспечивающая более быстрое выполнение байт-кода и более эффективное использование ресурсов по сравнению с другими доступными виртуальными машинами, такими как Squawk, KVM, Maxine, CVM и т. д. Стоит отметить, что эта Java-машина ориентирована в основном на ARM. процессоры.

Он не поставляется как отдельный продукт, а входит в состав нескольких решений для производителей соответствующего оборудования.

Одна версия этой виртуальной машины была разработана компанией Sun под лицензией GPLv2, т.е.

с открытым исходным кодом (также проект называется Функция PhoneME ).

Однако документации по сборке и запуску этой виртуальной машины в открытом доступе практически нет, а ее разработка и поддержка были практически прекращены компанией Oracle после поглощения Sun. Поэтому в данной статье дано краткое описание самого CLDC HI и его сборки + подробная инструкция по сборке по ссылке ниже.



О профилях и конфигурациях
Устройства, на которых может работать приложение J2ME, определяются поддерживаемой конфигурацией и профилем платформы.

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

В настоящее время существует две конфигурации платформы Java ME:

  1. CDC — конфигурация подключенного устройства - используется с виртуальной машиной на устройствах с 32-битной архитектурой и требует более 2 МБ памяти.

    Он предоставляет больше возможностей применения, чем CLDC, но также и более строгие требования к оборудованию.

  2. CLDC — ограниченная конфигурация подключенного устройства - используется для 16- и 32-битных устройств с ограниченной памятью.

    Приложения J2ME, созданные с использованием целевых устройств конфигурации CLDC, со следующими характеристиками:

    • Минимальный размер ПЗУ: 128 килобайт для CLDC 1.0, 160 килобайт для CLDC 1.1.
    • Минимальный объем оперативной памяти: 32 килобайта
    • Процессор: 16- или 32-битный
    • Низкое энергопотребление
    • Подключение к сети, в том числе беспроводной, при нестабильном соединении и ограниченной скорости передачи данных и т.п.

Частью платформы более высокого уровня является профиль.

Предполагается, что профиль будет задан для каждого основного класса устройств (мобильные телефоны, игровые автоматы, бытовая техника).

Те.

профиль определяет тип устройств, поддерживаемых приложением.

Профиль дополняет конфигурацию конкретными классами, определяющими сферу применения устройств.

J2ME определяет два профиля, построенных на основе CLDC: KJava и профиль мобильного информационного устройства (MIDP).

Для CDC доступен шаблон профиля, на основе которого вы можете создать свой собственный профиль Foundation. Платформа, состоящая из CLDC и MIDP, довольно распространена на рынке мобильных телефонов.

Стоит отметить, что CLDC HI также основан на конфигурации CLDC 1.1 (JSR 118) и профиле MIDP 2.1 (JSR 139).



Сборка CLDC HI
Эта виртуальная машина оказывается очень полезной, когда вам нужно перенести мобильное приложение на устройство, не поддерживающее платформу Java. Поэтому в данной статье описана сборка Java-машины CLDC HI, включая:
  • Минимальный набор продуктов, необходимый для сборки и компиляции;
  • Настройка среды кросс-компиляции на основе gcc и binutils;
  • Локализованы и исправлены ошибки в исходном коде, связанные с неполной обратной совместимостью инструментов сборки;
  • Ключи компиляции для работы на платформе с архитектурой ARM.
На самом деле мы идем в Репозиторий проекта PhoneME , структура которого показана ниже, и берем необходимые базовые компоненты: cldc,midp,pscl,tools. Если вам необходимо расширить функционал Java-машины, то берем из репозитория соответствующие JSR-пакеты.

Они будут собраны вместе с мидпом.



Создание реализации CLDC HotSpot для ARM

Основные этапы построения CLDC HI:

  • Настройки среды кросс-компиляции (инструменты, переменные среды);
  • Создание библиотек PCSL;
  • Построение конфигурации CLDC;
  • Построение профиля MIDP (при необходимости сборка JSR-пакетов).

Более подробную инструкцию по сборке на Linux под ARM можно найти здесь: CLDC HI в сборе После успешной сборки мы получаем выходные данные, содержащие собранные компоненты, которые затем переносим на целевое устройство.



Запуск на Paspberry Pi
В качестве целевого устройства для тестирования производительности использовался одноплатный компьютер Raspberry Pi с процессором ARM.

Создание реализации CLDC HotSpot для ARM

Вход JVM представляет собой jar-файл, который, в свою очередь, обрабатывает установщик мидлета и выдает индивидуальный номер для каждого приложения (подробнее см.

CLDC HI в сборе ).

После этого запускается JVM CLDC HI с номером приложения и создается фреймбуфер, в который выводится изображение экрана устройства.

Ниже демонстрируется работа Java-игры Snake с использованием CLDC HI на Raspberry Pi. P.S.: статья написана по результатам курсовой работы на математико-механическом факультете СПбГУ.

Исполняет Сарманова С.

Г.

Научный руководитель В.

С.

Полозов Теги: #CLDC HI #jvm #phoneME #Raspberry Pi #oracle #java #Разработка для Java ME

Вместе с данным постом часто просматривают: