Файл дескриптора приложения используется по двум причинам. Программное обеспечение управления приложениями устройства (AMS) использует информацию из этого файла для первоначальной проверки того, что все MID-леты в файле JAR соответствуют требованиям устройства, перед тем как оно загрузит полный файл JAR. AMS также использует эту информацию для управления MID-летом. AMS устройства отвечает за установку и удаление наборов MID-летов. Оно также обеспечивает MID-леты средой исполнения, требуемой спецификацией MIDP. Наконец, AMS управляет выполнением MID-летов, а именно запуском, приостановкой и закрытием всех MID-летов.
Наконец, сами MID-леты могут извлекать из конфигурации JAD-файла специфические атрибуты, которые представляют собой параметры MID-лета. Файл ресурсов приложения является основным механизмом для распаковки конфигураций MIDP-прило-жений.
Создание файла манифеста JAR
ЕСЛИ вы хотите добавить файл Manifest к вашему заархивированному набору MID-летов, вам необходимо создать его прежде, чем вы создадите сам JAR-архив. Вы можете создать этот файл в любом текстовом редакторе. Потом создайте JAR-файл с помощью стандартной утилиты JAR J2SE. Утилита JAR включается в утилиты инструментария Wireless Toolkit.
Спецификация MIDP требует, чтобы в файле Manifest присутствовали определенные поля. Требуемые поля показаны в таблице 2.2.
Таблица 2.2. Обязательные атрибуты файла MANIFEST.MF
Имя атрибута — Описание
MIDlet-Name — Название набора MID-летов
MIDlet-Versiorv — Номер версии набора MID-летов в форме .., определяемой схемой спецификации управления версиями продукта JDK
MIDlet-Vendor — Разработчик приложения (компания или частное лицо)
MIDlet- — По одному на MID-лет в данном наборе, содержит разделяемый запятой список из текстового имени MID-лета, значка и имени класса п-ного MID-лета в наборе
MicroEdition-Profile — Профиль J2ME, необходимый для исполнения MID-лета
MicroEdition-Configuration — Конфигурация J2ME, необходимая для исполнения MID-лета
Файл манифеста содержит строки атрибутов, один атрибут на строку. Каждый атрибут состоит из ключа и значения. После ключа ставится двоеточие, которое отделяет его от связанного с ним значения. Файл MANIFEST.MF программы HelloWorld находится в папке HelloWorld/bin/. Он выглядит следующим образом:
MIDlet-l: HelloWorld, HelloWorld.png, HelloWorld
MIDlet-Narae: HelloWorld
MIDlet-Vendor: Vartan Piroumian
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Обратите внимание на имя атрибута MIDlet-1: в файле MANIFEST.MF. Файл манифеста различает различные MID-леты, нумеруя их от MIDlet-l до MIDlet-/!. Число 1 должно идентифицировать первый MID-лет.
У атрибута MIDlet-1 существует три значения. Первое — название набора MID-летов, который содержит данный MID-лет. Это значение может быть именем, воспринимающимся человеком. Второе значение является именем файла изображения PNG, который AMS использует как значок, представляющий этот MID-лет. Последнее значение является именем файла класса MID-лета, который определяет входную точку исполнения MID-лета.
Наверное, самыми важными атрибутами являются атрибуты MicroEdition-Configuration и MicroEdition-Profile. AMS использует эти значения для определения того, подходит ли MID-лет для данного устройства.
Спецификация MIDP позволяет также создавать необязательные поля в файле манифеста. В таблице 2.3 показаны необязательные поля файла манифеста.
Таблица 2.3. Необязательные атрибуты файла MANIFEST.MF
Имя атрибута — Описание
MIDiet-Description — Описание набора MID-летов
MIDlet-Icon — Имя файла PNG, содержащегося в JAR
MIDlet-Info-URL — URL, который содержит дополнительную информацию об этом наборе MID-летов
MIDlet-Data-Size — Минимальное количество байт данных постоянного хранения, требуемое набором
Создание файла JAR для набора МID-летов
Теперь, когда вы создали файл манифеста, вы готовы к созданию файла JAR приложения. Используйте следующую команду jar:
$ jar craf bin/MANIFEST.MF bin/HelloWorld.jar — C classes/. -C res.
$
Эта команда создаст файл JAR для вашего набора MID-летов HelloWorld. Листинг содержимого директории bin/ обнаруживает только что созданный файл HelloWorld. jar:
$ Is — i bin
total 2
— rw-r-r- 1 vartan None 1393 HelloWorld.jar
— rw-r-r- 1 vartan None 193 MANIFEST.MF
$
Листинг содержимого файла JAR, который вы только что создали, выдает следующую информацию:
$ jar tf bin/HelloWorld.jar
META-INF/
META-INF/MANIFEST.MF
classes/./
classes/./HelloWorid.class
HelloWorld.png
$
Как вы можете видеть, файл манифеста включается в файл JAR. Файл JAR содержит один файл. class для нашего приложения HelloWorld. Он также содержит файл формата. png (portable network graphics — переносимая сетевая графика), который является подходящим вариантом для использования в качестве значка приложения. Файл MANIFEST.MF, конечно, был создан вручную, как описано выше.
Создание файла дecкpиптopa приложения для набора МID-летов
Программное обеспечение управления приложениями на устройстве, таком, как мобильный телефон, использует файл JAD для получения информации, необходимой для управления ресурсами во время выполнения MID-лета. Файл дескриптора приложения является необязательным, однако полезным. Вы можете использовать любой текстовой редактор для его создания, но вы должны дать файлу расширение. jad. Чтобы избежать путаницы, я рекомендую давать ему имя, которое характеризует весь набор MID-летов.
Таблица 2.4. Обязательные атрибуты файла дескриптора приложения
Имя атрибута — Описание
MIDlet-Jar-URL — URL файла JAR набора MID-летов
MIDlet-Jar-Size — Размер (в байтах) файла JAR
MIDlet-Name — Имя набора MID-летов
MIDlet-Vendor — Разработчик приложения (например, название компании или имя частного лица]
MIDlet-Version — Номер версии набора MID-летов в форме . ., определяемой схемой спецификации управления версиями продукта JDK
MicroEdition-Configuration — Конфигурация J2ME, необходимая для исполнения MID-лета
MicroEdition-Profile — Профиль J2ME, необходимый для исполнения MID-лета
Таблица 2.5. Необязательные атрибуты файла дескриптора приложения
Имя атрибута — Описание
MIDlet-Data-Size — Минимальное количество байт данных постоянного хранения, требуемое набором
MIDlet-Delete-Confirm — Указывает, должна ли AMS запрашивать подтверждение пользователя перед удалением MID-лета
MIDiet — Description — Описание набора MID-летов
MIDlet-Icon — Имя файла PNG, содержащегося в JAR
MIDlet-Info-URL — URL, который содержит дополнительную информацию об этом наборе MID-летов
MIDlet-Install-Notify — Указывает, должна ли AMS уведомлять пользователя перед установкой нового MID-лета