Изучаем MANIFEST.MF


В каждом JAVA-приложении внутри jar-архива имеется файл под названием "MANIFEST.MF" (всегда внутри папки "META-INF"). Это описатель приложения, содержащий большое количество сведений о приложении, а также данных, необходимых для его нормальной работы. Многие занимаются модификацией ява-приложений, имея только поверхностные знания об этом файле, и этого им вполне хватает... Я же постараюсь познакомить Вас с ним поближе, дабы Вы чувствовали себя с явой поувереннее и имели над ней больше власти... Возможно сведения, которые я приведу ниже, не являются эталоном точности и не содержат всех технических подробностей, которые указал бы JAVA-программист, но я постарался описать все простым человеческим языком на основе полученных мной с опытом знаний. И так, файл "MANIFEST.MF" лежит внутри jar-архива как я уже сказал в папке "META-INF", и представляет из себя по сути обычный текстовый файл, только с расширением *.mf вместо *.txt... И редактировать его следует как текстовый файл с помощью программ "Yedit" или "Dedit" в кодировке JavaUTF8 (!)
Он заключает в себе список параметров, разделенных между собой переводом строки. Я постараюсь сейчас привести для Вас описание необходимых параметров из этого списка, а также некоторых наиболее распространенных. Внимание! Некоторые сведения, приводимые мной, характерны только для смартфонов Nokia Series60, у других телефонов могут быть свои "заморочки"... И так, приступим, сначала даю описание параметра, затем его пример:
1. Manifest-Version: 1.0 - номер версии стандарта JAR, в соответствии с которым построен данный архив. Этот номер является обязательным. В SDK 1.2 значение этого параметра должно быть равно 1.0
2. Required-Version: 2.0 -минимальный номер версии утилиты JAR, которая сможет прочитать этот архив. Этот параметр необязателен.
3. Ant-Version: Apache Ant 1.6.5 - версия компилятора, использовавшегося для компиляции классов и ресурсов программы. Этот параметр будет встречаться в приложениях весьма часто.
4. Created-By: 1.6.0-b105 (Sun Microsystems Inc.) - название и версия инструмента (программы), с помощью которого создавался мидлет. Если перепаковывать программу, то в этой графе можно указать себя :)
5. MIDlet-Name: Jimm - название приложения, которое будет отображаться в диспетчере приложений и при его установке (поэтому именно это название будет отвечать за обновление и замену одноименных приложений, так что если Вы хотите чтобы сделанный Вами мод допустим на джимм не заменил при установке уже имеющийся оригинал, а лег рядом, достаточно именно в этой графе в названии изменить хотя бы одну букву.
6. MIDlet-Version: 0.5.2 -программная версия мидлета, указывается двумя либо тремя числами, разделенными между собой точкой.
7. MIDlet-Vendor: Opera Microsystems - производитель мидлета. Вот здесь "выкаблучиваться" и указывать свои ники при создании модов на чьи-то программы я не советую, лучше оставить настоящего производителя. Могут быть неприятности, если Вы будете на этом пойманы. Плагиат он и в Африке плагиат)))
8. MIDlet-Icon: /icon.png - путь к иконке мидлета внутри jar-архива. Если иконка в архиве лежит допустим в папке "resources", то путь этот будет выглядеть следующим образом: /resources/icon.png
9. MIDlet-Desсription: Opera Mini for mobile - короткая информация о мидлете, в сжатой форме так сказать, что он из себя представляет.
10. MIDlet-Info-URL: Зарегись чтобы посмотреть!- url на страницу в интернете, где можно узнать больше информации о данном мидлете (официальный сайт программы, оф.сайт ее производителя и т.п.)
11. MIDlet-1: Jimm, /icon.png, jimm.Jimm - содержит в себе следующую информацию (через запятую с пробелом):
- название приложения, которое будет отображаться в меню приложений и внутри самой программы в ее заголовке;
- путь к иконке приложения внутри jar-архива. Именно эта иконка играет главенствующую роль на наших смартах S60, она же и будет отображаться в меню приложений и в самой программе, даже если путь ее будет отличаться от указанного в параметре "MIDlet-Icon" (или даже если этот параметр будет вовсе отсутствовать).
- путь к первостепенному, запускающему классу приложения внутри jar-архива (в пути вместо слэша указывается точка), при модификации ява-приложения этот параметр лучше не трогать, оставить как есть.
12. MIDlet-Delete-Confirm: Не удаляйте меня! - информация, которая будет показана при удалении приложения... Обычно это различная рекламная информация, либо координаты для связи с автором приложения/мода на приложение. Должен также заметить, что кириллица не всегда, не во всех приложениях и не на всех телефонах будет корректно отображаться, поэтому при редактировании файла "MANIFEST.MF" или jad-файла приложения лучше все сведения указывать латинскими буквами.
13. MicroEdition-Profile: MIDP-2.0 и MicroEdition-Configuration: CLDC-1.0 - параметры ява-машины телефона, для которой создавался и на которой должен полноценно запускаться данный мидлет (ява-профиль: MIDP-1.0, MIDP-2.0; конфигурация ява: CLDC-1.0, CLDC-1.1). Иногда имеет смысл поэкспериментировать с этими параметрами, чтобы никак не желающее запускаться на Вашем телефоне приложение все-таки заработало, но это не всегда срабатывает.
14. MIDlet-Jar-Size: 267162 -размер готового jar-архива в байтах.
15. Nokia-MIDlet-Original-Display-Size: 240,320 и Nokia-MIDlet-Target-Display-Size: 176,208 - также имеется возможность адаптировать например игру с бОльшим чем у Вас разрешением экрана под свое разрешение (с небольшой потерей качества изображения, если изменение размера будет непропорциональным). Для этого в самом начале манифеста следует создать эти строчки, где Nokia-MIDlet-Original-Display-Size - оригинальное разрешение игры, а Nokia-MIDlet-Target-Display-Size - то разрешение, которое Вам требуется.
16. MIDlet-Jar-URL: Зарегись чтобы посмотреть!- jad-файл приложения по сути также является описателем приложения, дублирует собой "MANIFEST.MF" программы и строится по тем же правилам что и он. Обычно разница только в том, что в jad указан адрес jar-приложения в интернете или в файловой системе телефона. При установке приложения через jad именно по ссылке в этом параметре будет загружаться само jar-приложение из интернета и устанавливаться в систему Вашего телефона. Если же Вы хотите, чтобы при установке через jad обе части приложения ставились из одной папки, указывайте в этом параметре простейший путь к jar-файлу в файловой системе, а именно только его название с расширением: MIDlet-Jar-URL: Opera_mini_mod4.jar Если Вы переименуете этот jar-файл, и его название не совпадет с указанным в параметре "MIDlet-Jar-URL", то установка пройдет неудачно. То же самое будет, если при установке через jad яр не окажется в одной папке с ним.
17. При подписи приложения сертификатом в jad создаются еще несколько параметров:
MIDlet-Certificate-1-1: в этом параметре содержится сам cer-сертификат, которым подписывалось приложение, закодированный алгоритмом base64.
MIDlet-Jar-RSA-SHA1: это сама подпись приложения, каким образом она строится я пока не знаю, но судя по всему она кодируется тремя алгоритмами - RSA, SHA1 и base64.
MIDlet-Permissions: ну а это список разрешений мидлету, дозволенных ему после подписи (доступ в интернет, доступ к чтению и изменению файловой системы и т.д.)


By mad-team.info