Малик Эмулятор: краткое руководство
Данное руководство описывает подробности настройки приложений, установленных на Малик Эмулятор, а также структуру RMS-записей приложений (RMS — система управления записями).
Настройка приложений
Изменить настройки приложения можно тремя способами:
- меню настроек (используется до запуска отдельного приложения из архива)
- консоль J2ME (используется во время работы приложения)
- текстовый файл
/midlet.properties

(анимированный PNG: в некоторых обозревателях отображается без анимации)
Важно: после изменения настроек с помощью меню или консоли настройки необходимо сохранить, если вам нужно, чтобы они действовали при последующих запусках приложения. В меню это можно сделать командой «Сохранить настройки», а в консоли — командой «сохранить».
Файл настроек /midlet.properties
имеется в папке каждого приложения, установленного на эмулятор, и хранит настройки соответствующего приложения.
Файл настроек java/programme/midlet.properties
хранит настройки, которые будут применяться к приложениям, которые вы установите на эмулятор в будущем.
Управление
Здесь можно задать соответствие между клавишами виртуального устройства и клавишами компьютера.
Справка по настройке
Назначение этой настройки — установить клавиши компьютера, соответствующие клавишам виртуального устройства. При этом вам необходимо самостоятельно следить за тем, чтобы были заданы разные клавиши компьютера. Изменить настройки управления можно с помощью меню и консоли.
- Меню: экран «Управление»
- Консоль: команда «клавиша»
- midlet.properties: блок строк, начинающихся на
key.


Названия клавиш виртуального устройства
Меню | Консоль | midlet.properties |
↑ | вверх | UP |
↓ | вниз | DOWN |
← | влево | LEFT |
→ | вправо | RIGHT |
Центральная клавиша выбора | выбор | SELECT |
Левая клавиша выбора | лкв | SOFT1 |
Правая клавиша выбора | пкв | SOFT2 |
Вызов консоли | консоль | CONSOLE |
Выход из приложения | выход | EXITAPP |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
4 | 4 | 4 |
5 | 5 | 5 |
6 | 6 | 6 |
7 | 7 | 7 |
8 | 8 | 8 |
9 | 9 | 9 |
* | * | ASTERISK |
0 | 0 | 0 |
# | # | POUND |
Названия клавиш компьютера одинаковы для всех способов изменения настроек, однако с помощью меню можно назначить ограниченное количество клавиш, в то время как с помощью консоли и midlet.properties
можно назначить любую клавишу компьютера, кроме тех клавиш, которые используются эмулятором и операционной системой.
Названия клавиш компьютера
ESCAPE |
J |
F1 |
K |
F2 |
L |
F3 |
SEMICOLON |
F4 |
APOSTROPHE |
F5 |
Z |
F6 |
X |
F7 |
C |
F8 |
V |
F9 |
B |
F10 |
N |
F11 |
M |
F12 |
COMMA |
SCROLL_LOCK |
PERIOD |
PAUSE_BREAK |
SLASH |
GRAVE |
TAB |
1 |
CAPS_LOCK |
2 |
LSHIFT (левый),RSHIFT (правый) |
3 |
LCTRL (левый),RCTRL (правый) |
4 |
LALT |
5 |
CONTEXT |
6 |
ENTER |
7 |
INSERT |
8 |
HOME |
9 |
PAGE_UP |
0 |
DELETE |
MINUS |
END |
EQUAL |
PAGE_DOWN |
BACKSLASH |
UP |
BACKSPACE |
LEFT |
Q |
DOWN |
W |
RIGHT |
E |
NUM_1 |
R |
NUM_2 |
T |
NUM_3 |
Y |
NUM_4 |
U |
NUM_5 |
I |
NUM_6 |
O |
NUM_7 |
P |
NUM_8 |
LBRACKET |
NUM_9 |
RBRACKET |
NUM_0 |
A |
NUM_DECIMAL |
S |
NUM_PLUS |
D |
NUM_MINUS |
F |
NUM_STAR |
G |
NUM_DIVIDE |
H |
NUM_LOCK |
Коды клавиш
Здесь можно задать коды тех клавиш, которые не были предусмотрены спецификацией MIDP, в результате чего коды этих клавиш стали зависимыми от конкретных моделей устройств.
Справка по настройке
Назначение этой настройки — установить специфичные коды клавиш, которые не описываются в спецификации MIDP и зависят от модели устройства. Изменить эти коды клавиш можно с помощью меню. С помощью консоли этого сделать нельзя, поскольку спецификацией MIDP не разрешено изменение кодов клавиш во время работы приложения.
- Меню: экран «Коды клавиш»
- Консоль: команда не предусмотрена
- midlet.properties: блок строк, начинающихся на
key.code.

С помощью списка «Предустановки» можно выбрать коды клавиш некоторых производителей:
Производитель | ↑ | ↓ | ← | → | ЦКВ | ЛКВ | ПКВ |
Motorola | –1 | –6 | –2 | –5 | –20 | –21 | –22 |
Nokia | –1 | –2 | –3 | –4 | –5 | –6 | –7 |
Siemens | –59 | –60 | –61 | –62 | –26 | –1 | –4 |
Код клавиши является отрицательным целым числом.
Система
Здесь можно настроить максимальную частоту обновления экрана и поведение системы.
Справка по настройке
Назначение этой настройки — настроить максимальное количество кадров в секунду и поведение системных библиотек Java при наступлении таких событий, как создание объекта исключения (объекта типа java.lang.Throwable
) и длительное удержание клавиши нажатой. Изменить эти настройки можно с помощью меню и консоли.
- Меню: экран «Система»
- Консоль: команды «квс», «трассировка»
- midlet.properties: блок строк, начинающихся на
system.


Настройка системы включает в себя:
- настройку максимальной частоты кадров (консольная команда «квс»; большие значения могут привести к пропуску некоторых кадров; рекомендуемое значение — 25);
- настройку трассировки стака вызовов в исключениях (консольная команда «трассировка»; отключите, если приложение работает медленно или с ошибками, увеличивая размер файла
/err.txt
); - настройку вызова метода
Canvas.keyRepeated(int)
(или более полноjavax.microedition.lcdui.Canvas.keyRepeated(int)
) (консольная команда не предусмотрена; установите эту опцию в соответствии со своими предпочтениями, поскольку это может повлиять на поведение приложения в тот момент, когда вы удерживаете нажатой какую-либо клавишу).
Шрифты
Здесь можно задать шрифты, которые приложение будет использовать для вывода текста. Настройки шрифтов вступят в силу только после перезапуска программы.
Справка по настройке
Назначение этой настройки — установить шрифты, которые будут использовать системные библиотеки Java для вывода текста. Изменить настройки шрифтов можно с помощью меню.
- Меню: экран «Шрифты»
- Консоль: команда не предусмотрена
- midlet.properties: блок строк, начинающихся на
font.

С помощью данной настройки можно настроить шрифты, определённые в спецификации MIDP. Название шрифта Console
, который используется в консоли, жёстко задано и не может быть изменено.
Важно: после изменения настроек шрифтов с помощью меню обязательно сохраните настройки (пункт меню «Сохранить настройки»), выйдите из приложения (кнопка «Выход») и снова запустите приложение.
Все шрифты, которые вы можете задать, находятся в папке fonts
и имеют расширение .ufn
. Это свободный формат растровых шрифтов, предназначенный для вывода текста на экран. Малик Эмулятор имеет предустановленное приложение «Редактор шрифтов UFN», с помощью которого можно редактировать и создавать новые шрифты в этом формате.
Структура RMS-записей
Этот раздел руководства описывает внутренний формат RMS-записей, которые создаются системными библиотеками Java Малик Эмулятора и приложениями, и адресован преимущественно разработчикам и исследователям приложений для платформы J2ME.
Записи хранятся в папке rms
, которая присутствует в папке каждого приложения, установленного на Малик Эмулятор. Каждая запись представлена файлом с расширением .rms
. Имя файла соответствует имени записи, однако выбирается такое имя файла, чтобы обойти ограничения, наложенные операционной системой на имена файлов, и соблюсти требования по именованию записей, установленные спецификацией MIDP 2.1.
Каждая запись имеет заголовок размером 32 байта, после которого следуют подзаписи, количество которых определено в заголовке. Структуры заголовка и подзаписи описаны в следующих таблицах.
Смещение | Размер | Название | Описание |
00 |
8 | Сигнатура | Содержит значение 0x6d6964702d726d73L ("midp-rms" ) |
08 |
4 | Количество | Содержит количество подзаписей. |
0C |
4 | Версия | Содержит количество модификаций записи. |
10 |
8 | Время | Содержит штамп времени в формате метода System.currentTimeMillis() последней модификации записи. |
18 |
4 | Следующий ИД | Содержит идентификатор, который будет иметь новая подзапись, если приложение её добавит. |
1C |
4 | Резерв | Содержит нулевое значение. |
Смещение | Размер | Название | Описание |
00 |
4 | ИД | Содержит идентификатор подзаписи. |
04 |
4 | Размер | Содержит размер данных подзаписи, в байтах. |
08 |
— | Данные | Содержит данные подзаписи, записанные приложением. Размер этих данных хранится в поле «Размер». Структура этих данных специфична для каждого приложения. |
— |
0—3 | Выравнивание | Содержит от 0 до 3 байт, необходимых для выравнивания размера подзаписи по 4 байта. Значение этих байтов равно нулю. |