СЕРВИСНЫЕ УСЛУГИ
СТУДИЯ В ЛИПЕЦКЕ

Ретро · Около 5 минут

JAR, JAD и «версия под ваш экран»: как устанавливали Java-игры до магазинов приложений

Что означали JAR, JAD и «версия под ваш экран»: файлы Java-игр, совместимость, память и установка до магазинов приложений. Простое объяснение.
Sony Ericsson K750i — телефон времени отдельных Java-файлов и сборок под модель.

Sony Ericsson K750i — телефон времени отдельных Java-файлов и сборок под модель. Фото: Beamish4 · Оригинал и автор · CC BY-SA 4.0.

Сначала выбрать правильный файл

В каталоге игр было недостаточно нажать на красивую картинку. Сначала ищешь свою модель или разрешение экрана, потом смотришь на расширение: JAR или JAD. Загружаешь, ждёшь установки — и только после этого узнаёшь, удалось ли всё сделать правильно.

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

Siemens C65. В эпоху Java совместимость часто уточняли по конкретной модели телефона.
Siemens C65. В эпоху Java совместимость часто уточняли по конкретной модели телефона. Фото: Arths-at · Оригинал и автор · CC BY-SA 4.0.

JAR содержал приложение, JAD описывал его

JAR — архив с программой и её ресурсами: например, изображениями и звуками. Внутри находились и сведения, нужные системе приложения. JAD — небольшой текстовый дескриптор, который описывал сборку и мог указывать адрес её JAR-файла.

ФайлЧто в нём былоПочему это важно
JARКод, ресурсы и внутренние сведения о приложенииОсновная часть устанавливаемой программы
JADОписание, размер, адрес JAR и другие атрибутыМог участвовать в загрузке и проверке установки

Поэтому JAD не заменял всю игру. Если телефон получал только описание, ему ещё требовалась основная часть. В некоторых способах установки можно было начать с JAR, в других использовался JAD. Это зависело от платформы и её версии.

В документации MIDP 1.0 и MIDP 2.0 способы загрузки различались. Отсюда знакомая ситуация: у одного человека файл ставится прямо из папки, у другого требуется другой порядок. Одинаковое расширение не гарантировало одинаковое поведение аппаратов.

Почему «под ваш экран» было серьёзным условием

Размеры 128 × 160, 176 × 220, 240 × 320 выглядели почти как название класса телефона. Игры часто готовили под конкретное поле: располагали кнопочные подсказки, рисовали фон, рассчитывали размер меню.

Siemens CX65: другой экран и управление, чем у компактного C65.
Siemens CX65: другой экран и управление, чем у компактного C65. Фото: Beamish4 · Оригинал и автор · CC BY-SA 4.0.
Sony Ericsson K750i. Одна игра могла иметь отдельные сборки для разных моделей и размеров дисплея.
Sony Ericsson K750i. Одна игра могла иметь отдельные сборки для разных моделей и размеров дисплея. Фото: Beamish4 · Оригинал и автор · CC BY-SA 4.0.

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

Поэтому совет «возьми любую версию 176 × 220» не решал всё. Две модели с похожими экранами могли поддерживать разные функции. Иногда сборка для одной марки запускалась на другой, иногда нет — универсального результата не существовало.

Телефон спрашивал разрешение

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

Jimm 0.5.1 как пример Java-приложения. Это заставка программы, не экран установки.
Jimm 0.5.1 как пример Java-приложения. Это заставка программы, не экран установки. Экран программы: © Команда Jimm; скриншот опубликован MForum · Источник изображения.

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

При этом расширение JAR не подтверждало безопасность. В каталогах соседствовали игры, полезные программы и изменённые файлы. Обещание красивой заставки ничего не говорило о происхождении приложения или возможном обращении к платным функциям.

От сайта к телефону — несколькими дорогами

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

USB-адаптер Bluetooth: такой аксессуар давал компьютеру радиосвязь с совместимым телефоном.
USB-адаптер Bluetooth: такой аксессуар давал компьютеру радиосвязь с совместимым телефоном. Фото: © 2010 by Tomasz Sienicki [user: tsca, mail: tomasz.sienicki at gmail.com] · Оригинал и автор · CC BY 3.0.
USB-адаптер IrDA для компьютера. Это другой способ доставки файлов, с оптическим соединением.
USB-адаптер IrDA для компьютера. Это другой способ доставки файлов, с оптическим соединением. Фото: Bartosz Senderek · Оригинал и автор · CC BY-SA 2.5.

Различия объясняются руководствами устройств. Например, смартфон Nokia мог принимать установочные файлы одним способом, а обычный телефон другой марки — иначе организовывать загрузку Java. Перенесённый в папку файл не обязательно сразу появлялся среди игр.

Поэтому исторический обмен звучал как короткая техническая консультация: какая модель, какой экран, чем передавать? Без этих уточнений знакомое «у меня работает» ещё не помогало другому владельцу.

Ошибки тоже были частью знакомства

Сообщение об ошибке могло появиться сразу, во время установки или при первом запуске. Причины разные: повреждённый файл, неподдерживаемая версия Java, нехватка памяти, неверное описание сборки, ограничения устройства.

Что происходилоЧто это могло означать
Файл не устанавливаетсяПроблема доставки, описания или совместимости
Программа запускается, но картинка неудобнаСборка не рассчитана на этот экран
Есть ошибки во время работыНе хватает ресурсов или отсутствует нужная возможность
Появляются запросы доступаПриложение использует защищённые возможности устройства

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

Знакомая игра начиналась ещё до заставки

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

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

Источники и фотографии

  1. Oracle: упаковка MIDlet в JAR и JAD
  2. Oracle: загрузка по сети в MIDP 1.0 и 2.0
  3. Oracle: приложение, дескриптор и манифест
  4. Руководство Nokia 3620: установка Java
Made on
Tilda