Оболочка MIDP для Android/Описание

Материал из Project D8
Перейти к: навигация, поиск

Содержание

Стартовый экран

При запуске портированного мидлета на Android появляется стартовый экран, который позволяет настроить основные параметры оболочки и запустить собственно мидлет. Ниже показан вид стартового экрана в русской и английской версии на примере игры Ancient Empires II.

Русская версия Английская версия
AMS config ru.png AMS config en.png

Меню для этого экрана содержит три команды:

  1. Пуск — запуск мидлета с заданными настройками
  2. Сброс — сброс настроек оболочки к значениям по умолчанию (не затрагивает язык и настройки самого мидлета)
  3. Отмена — выход из программы

Параметры экрана

  • Ширина и Высота задают размер виртуального экрана, который будет доступен мидлету. Многие мидлеты оптимизированы под некое конкретное разрешение экрана (обычно 240 x 320) и могут отображаться некорректно при других разрешениях.
  • Масштабировать, если разрешение виртуального экрана не соответствует разрешению экрана смартфона:
    • включено — виртуальный экран масштабируется под размер экрана смартфона
    • выключено — виртуальный экран располагается в центре экрана смартфона без изменения размера
  • Сохранять пропорции при масштабировании:
    • включено — виртуальный экран вписывается в экран смартфона с сохранением соотношения сторон, возможно, занимая только часть его
    • выключено — виртуальный экран растягивается на весь экран смартфона, возможно, с искажением пропоций отображаемой графики
  • Фильтрация экрана при масштабировании повышает качество изображения, но требует больше аппаратных ресурсов

Предустановки позволяют быстро задать стандартное разрешение виртуального экрана. В таблице ниже приведен список стандартных разрешений (на примере HTC Evo 3D, разрешение экрана 960 x 540)

Разрешение Масштаб Соотношение сторон и
ориентация экрана
Ш В
1 128 128 4,21875:1 1:1
2 128 160 3,375:1 портретная 3,2:4
3 132 176 3,068:1 портретная 3:4
4 176 220 2,454:1 портретная 3,2:4
5 240 320 1,6875:1 портретная 3:4
6 202 270 2:1 портретная 3:4
7 360 270 2:1 ландшафтная 4:3
8 405 540 1:1 портретная 3:4
9 720 540 1:1 ландшафтная 4:3
10 960 540 1:1 ландшафтная 16:9
  • Варианты с 1 по 5 соответствуют стандартным разрешениям экранов мобильных телефонов. Они обеспечивают наибольшую совместимость (большинство мидлетов оптимизировано под одно из этих разрешений), но при масштабировании под размер экрана смартфона качество графики может несколько снизиться.
  • Варианты 8, 9 и 10 обеспечивают наилучшее качество графики, поскольку они рассчитываются на основании разрешения экрана смартфона и не используют масштабирование. Однако, если мидлет не оптимизирован для таких разрешений, он может работать некорректно или не работать вообще. В этом случае рекомендуется выбрать меньшее разрешение.
  • Варианты 5 и 6 являются промежуточными по качеству и совместимости. Они рассчитываются на основании разрешения экрана смартфона так, чтобы на каждый виртуальный пиксель приходилось ровно четыре физических. Это позволяет устранить искажения при масштабировании. При использовании этих вариантов рекомендуется отключить фильтрацию экрана для повышения резкости изображения.

Кнопка Фон позволяет выбрать фоновый цвет экрана. Этим цветом будут заполняться полосы по краям экрана, если он не полностью занят виртуальным экраном.

Параметры шрифтов

Здесь можно задать размеры малого, среднего и большого шрифтов, которые будут использоваться мидлетом. Размеры задаются в пикселях.

Если установлен флажок Размеры в масштабированных пикселях, то указанные размеры будут скорректированы системой Android, чтобы обеспечить одинаковый видимый размер текста на экранах с различными разрешениями. Эту настройку рекомендуется включить при использовании разрешений виртуального экрана более чем 240 x 320 пикселей.

Кнопка Предустановки позволяет быстро задать размеры шрифтов, которые наиболее подходят для данного разрешения виртуального экрана:

Разрешение Размер шрифта
Ш В малый средний большой
128 128 9 13 15
128 160 13 15 20
176 220 15 18 22
240 320 18 22 26

Прочие параметры

Кнопка Язык позволяет изменять язык приложений, которые поддерживают несколько языков. Также на ней отображается текущий выбранный язык. Эта настройка не изменяется при сбросе параметров командой Сброс.

Кнопка Редактировать манифест на данный момент не активна. Следите за обновлениями.

Параметры виртуальной клавиатуры

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

Поле Скрывать через позволяет задать время (в миллисекундах), в течение которого виртуальная клавиатура продолжает отображаться на экране после последнего нажатия. По истечении данного времени клавиатура скрывается с экрана, и восстанавливается автоматически при следующем нажатии на экран. Если в данном поле указать отрицательное значение, а также если все клавиши располагаются вне виртуального экрана (в свободных областях по его краям), наэкранная клавиатура скрываться не будет и отображается постоянно.

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

Следующая группа кнопок позволяет настроить цвет виртуальной клавиатуры:

  1. Надписи на кнопках в ненажатом состоянии
  2. Фон кнопок в ненажатом состоянии
  3. Надписи (Н) на кнопках в нажатом состоянии
  4. Фон (Н) кнопок в нажатом состоянии
  5. Обводка кнопок

Виртуальная клавиатура

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

  • Поддерживается до 10 одновременных нажатий.
  • Отпустить одну кнопку и нажать соседнюю можно не отрывая пальца от экрана.
  • При удержании кнопок генерируются повторные нажатия.

Обозначения на кнопках

Символ Действие
джойстик вверх
джойстик вниз
джойстик влево
джойстик вправо
←↑ джойстик влево + вверх
↑→ джойстик вправо + вверх
←↓ джойстик влево + вниз
↓→ джойстик вправо + вниз
F огонь / выбор
L левая софт-клавиша
R правая софт-клавиша
D звонок (зеленая трубка)
C отбой (красная трубка)

Встроенные раскладки

При работе мидлета можно «на лету» изменять расположение и размер наэкранных кнопок. Для переключения режима редактирования раскладки клавиатуры используется кнопка, указанная в поле Настройка раскладки в параметрах виртуальной клавиатуры (см. предыдущий раздел). Удерживая эту кнопку ~2 секунды, можно сбросить раскладку клавиатуры к встроенным (переключаются циклически):

Device-2012-11-15-171257.png
Device-2012-11-15-171334.png

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

После сброса к встроенной раскладке виртуальная клавиатура остается в режиме редактирования расположения кнопок.

Изменение расположения кнопок

Однократное нажатие на кнопку редактирования раскладки переводит виртуальную клавиатуру в режим изменения расположения кнопок.

Для перемещения кнопки на нее нужно нажать и перетащить в нужное место на экране. При этом если кнопка оказывается достаточно близко к другой кнопке, срабатывает автоматическая привязка и перемещаемая кнопка выравнивается относительно соседней и прикрепляется к ней. Если затем начать двигать прикрепленную кнопку, она не будет двигаться до тех пор, пока не выйдет из зоны действия автоматической привязки. Аналогично работает привязка к краям экрана.

При перемещении кнопки вместе с ней также перемещаются и все кнопки, которые к ней в данный момент прикреплены.

Изменение размеров кнопок

Повторное нажатие на кнопку редактирования раскладки переводит виртуальную клавиатуру в режим изменения размеров кнопок.

Все кнопки разделены по размерам на 4 группы:

  1. цифровые
  2. софт-кнопки
  3. джойстик
  4. кнопка «огонь»

Размер изменяется сразу для всей группы кнопок. Та группа, которая редактируется в данный момент, подсвечивается. Изенить текущую группу можно нажатием на кнопку, входящую в нужную группу.

Для изменения размера группы кнопок нужно провести пальцем по экрану: движение вправо или вверх увеличивает размер кнопок, движение влево или вниз уменьшает. Если размер группы кнопок окажется близким к размеру другой группы кнопок, сработает автоматическая привязка, и размер редактируемой группы станет точно равным размеру второй группы. При дальнейшем изенении размера привязка отключится, и группа примет требуемый размер.

Завершение редактирования раскладки

Третье нажатие на кнопку редактирования раскладки возвращает виртуальную клавиатуру в обычный режим. Внесенные изменения сохраняются при выходе из программы и не затрагиваются при сбросе настроек командой Сброс на стартовом экране.

Часто задаваемые вопросы

Какие версии ОС поддерживаются?

Для работы оболочки MIDP требуется Android версии как минимум 2.3.3 («Gingerbread», API Level 10). Чтобы ввести поддержку более ранних версий, в оболочке пришлось бы отказаться от доступа к файловой системе (JSR-75) и некоторых мультимедиа-функций.

Основное тестирование оболочка проходит на аппарате HTC Evo 3D с установленной ОС Android версии 4.0.3 («Ice Cream Sandwich», API Level 15).

Почему не работает сенсорное управление?

Сенсорное управление, в смысле «правильное» сенсорное управление, будет работать только в тех программах, в которых оно работало на Java ME. То есть в тех, в которых оно было заложено изначально. Во всех остальных случаях управление осуществляется с помощью виртуальной наэкранной клавиатуры, поскольку адаптация мидлетов под сенсорное управление в современном его понимании, с кинетической прокруткой списков, сенсорными меню и т. п., — процедура весьма трудоемкая и индивидуальная для каждой программы.

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

Как правильно свернуть / закрыть программу?

Свернуть мидлет в фоновый режим можно одиночным нажатием кнопки «Домой» или «Назад»[1]. При этом, если на обычных мобильных телефонах при сворачивании мидлета в фон его выполнение приостанавливается, то в оболочке для Android такого не происходит, и мидлет может продолжать выполняться даже в фоновом режиме. Конкретная реакция на сворачивание может варьироваться от мидлета к мидлету, и, если такое будет предусмотрено разработчиком, возможна даже одновременная работа нескольких мидлетов.

Для выхода из портированного мидлета следует использовать его собственное меню (как на мобильных телефонах с Java ME). Только в этом случае можно гарантировать корректное завершение его работы, с сохранением всех данных, настроек, и т. д.

Для принудительного закрытия мидлета можно использовать долгое нажатие кнопки «Назад», аналогично нажатию кнопки «Отбой» на мобильном телефоне. Однако следует понимать, что эта возможность предусмотрена на случай возникновения ошибки и невозможности нормального завершения его работы. Закрывать мидлет этим способом не рекомендуется, точно так же, как на мобильных телефонах не рекомендуется пользоваться кнопкой «Отбой» для выхода из мидлета.

Примечания

  1. Только для оболочки версии 1.1 или новее. Оболочка версии 1.0 не поддерживает кнопку «Назад» — программа некорректно сворачивается в фоновый режим, и развернуть ее обратно, скорее всего, уже не получится. Если такое все же произошло, нужно заново запустить программу и в меню стартового экрана выбрать пункт «Отмена». Программа закроется, и при следующем запуске будет работать нормально.
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Список
Инструменты