Администратор
Сообщений всего: 975
Регистрация: Янв 2006
|
У меня появился новый телефон. Даже не телефон, а скорее девайс с большим и красивым экраном. Это мой первый сонэрик - K700i. Да, это конечно не PSP (тем более их тогда ещё не было). Но всё же, благодаря ему, так называемые «тормозилки» вдруг стали увлекательными играми. Играть понравилось, затянуло. Я купил одну игру, вторую и так далее. А потом увидел в сетке игры для своего телефона. Достаточно было освоить простейшие навыки работы с Bluetooth и вуаля - за игры совершенно не обязательно надо платить. Вот тут-то и началось...
Часть 1. Жадность фраера.
Сперва я искал какие-то определённые игры. Скачивал и устанавливал на телефон. Но, увы, далеко не все запускались, а если запускались, то многие не соответствовали разрешению экрана телефона. Многие скачанные игры с разными названиями и из разных источников при загрузке в телефон представляли собой одну и ту же игру. Кроме того, я начал скачивать так называемые «коллекции лучших игр». Где из всей пачки в десятки, а иногда в сотни игр всего одна или две оставались «жить» в памяти телефона. Наконец, память телефона заполнилась до отказа и мне пришлось впервые столкнуться с проблемой: как упорядочить на винте всё то что было скачано.
Часть 2. Удаляем всё лишнее.
Итак, на винте скопились тысячи файлов. К этому времени мне было известно, что java игры (мидлеты) - это файлы с расширением JAR и JAD. Поэтому я распаковал все архивы, сбросил все, что распаковалось в одну общую папку и просто поудалял все файлы с другими расширениями. Под удаление попали файлы TXT и NFO с информацией, откуда были скачаны файлы, SIS - игры для платформы symbian (не запускаются на обычном телефоне) и прочие файлы случайно попавшие в подборку.
Часть 3. А нужны ли JAD?
Для телефона K700i, как и для многих других современных телефонов, JAD файлы не нужны. Игры великолепно устанавливаются и без них. JAD файл весит несколько байт и его можно открыть обычным блокнотом. В нём содержится текстовая информация, которую телефон может самостоятельно получить из JAR файла, а именно: название игры, её версию, и т.д. Кроме того, существует маленькая программка JAD Maker для создания JAD файла из JAR простым перетаскиванием файла из проводника.
А теперь удаляем из каталога все JAD файлы.
Если JAD файлы для вашего телефона всё же понадобятся, то скачать JAD Maker можно совершенно бесплатно качаем тут.
Часть 4. Многообразие видов.
Задача упростилась. Остался один большой каталог с мидлетами. В нём было множество файлов с самыми невероятными названиями. Иногда это было сокращённое название игры, иногда подробное с указанием версии и вендора (компании, у которой была куплена игра), а иногда просто ничего не говорящий набор символов. Популярная игрушка Chess Master могла называться ChessMaster.jar или Chess.jar и даже 23478352.jar. Поэтому необходимо было переименовать файлы по каким-то определённым правилам, желательно с учётом названия и версии игры. Для этого пришлось познакомиться с устройством JAR файла.
Часть 5. Препарируем JAR.
JAR представляет собой ни что иное, как упрощённое для телефона java приложение или мидлет. Для компактности он сжат по алгоритму ZIP. Чтобы убедиться в этом, достаточно переименовать JAR в ZIP (или по правой кнопке «открыть с помощью» вашего архиватора) и посмотреть его содержимое. Среди множества папок и файлов нас интересует только папка с названием META-INF. Такая папка есть в любом мидлете, а в ней всегда есть файл с названием MANIFEST.MF. Вот в нём-то и находится вся необходимая нам информация. Обратим внимание на строчки MIDlet-Name, MIDlet-Version и MIDlet-Vendor. Вынимаем информацию из этих строк, и вот наш безликий 23478352.jar превращается в Gameloft_ChessMaster_v1.0.0.jar!
Внимание! Если файл не открывается WinRar или другим архиватором, то его можно удалить, т.к. в телефоне такой мидлет тоже не будет работать.
Часть 6. Хакеры, блин.
Всё было бы просто здорово, если бы не одно НО. Простота устройства мидлета делает его легкой добычей для «хакеров». Почему в кавычках? Потому что JAR файлы устроены предельно просто, их не нужно взламывать и любой желающий может «наследить» в мидлете. Причём проще всего это сделать в файле MANIFEST.MF, заменив, скажем MIDlet-Vendor на Pasha или Petya. Поэтому будьте внимательны при сортировке своих игр.
Часть 7. Структура каталога.
Получились слишком длинные, почти не читаемые имена файлов. Поэтому в общем каталоге появились папки с названиями крупнейших вендоров, таких как Gameloft, IndiaGames, и т.д. Соответственно, название файлов решено было сократились с Gameloft_ChessMaster_v1.0.0.jar до ChessMaster_v1.0.0.jar в папке Gameloft. Постепенно я обнаружил в своей коллекции множество одинаковых игр, а также множество версий одной и той же игры.
Часть 8. Не спешите удалять!
Игр было очень много, и очень скоро начали появляться файлы с одинаковым названием и предложение заменить имеющийся файл. Как поступать дальше? Лучше всего временно добавлять в конце названия звездочку или какой-то символ, например: ChessMaster_v1.0.0*.jar или ChessMaster_v1.0.0_.jar.
Почему не удалять, а переименовывать? Потому что игры бывают: - оптимизированы для разных физических размеров экрана (QVGA, 176x220; 128x160 и т.д.); - оптимизированы для разных платформ (MIDP-1.0 и MIDP-2.0); - на разных языках (английский, немецкий, испанский, русский и т.д.); - изменены "хакерами" (с "левыми логотипами", заставками, именами и подписями).
Часть 9. Размер имеет значение.
Сравнив точные размеры файлов в байтах (точный размер в свойствах файла), версии и платформы (содержимое строчек MIDlet-Version и MicroEdition-Profile), можно найти повторяющиеся, практически идентичные файлы и оставить только один из них. Обратите внимание! Довольно редко, но бывает, что все эти параметры совпадают для версий игры на разных языках.
Часть 10. MIDP-1.0 vs. MIDP-2.0
Обратите внимание на спецификации своего телефона и убедитесь, что в нём есть поддержка MIDP-2.0. Игры для платформы MIDP 2.0 более универсальны, менее зависимы от модели и производителя телефона, обладают лучшей скоростью, поддерживают прозрачность и обладают массой преимуществ по сравнению с MIDP-1.0. У владельцев Nokia поддержка технологий MIDP-1.0 и MIDP-2.0 реализована при помощи платформ s40 и s60 соответственно. Если такой поддержки нет, то можно смело удалять из своего каталога все игры со строкой MicroEdition-Profile: MIDP-2.0.
Часть 11. Обязательно ли все игры загружать на телефон?
Представьте себе если в вашей коллекции сотня и больше игр. Для проверки содержимого большого количества файлов будет полезна программа Kwyshell MidpX. Она предназначена для запуска мидлета на компьютере (эмулирует работу мобильного телефона). Программа совершенно бесплатна, загрузить и обсудить её можно тут. После установки достаточно 2 раза кликнуть на JAR файле. На экранчике виртуального мобильного телефона запустится (или не запустится) java игра.
Часть 12. MidpX - не панацея.
Помните что MidpX всего лишь эмулятор и у него есть масса недостатков: - не позволяет запустить 3D игры. - экран виртуального мобильного телефона имеет размер строго 176х208, и изменить этот размер нельзя. - нет поддержки технологии Floating point (используется платформой MIDP-2.0) и др.
Таким образом, есть множество игр, которые успешно запустятся на мобильном телефоне, но не будут работать в MidpX. Напомню, что проверка непосредственно на телефоне для таких игр - единственный способ проверки работоспособности.
Послесловие. Некоторые детали, на которые хотелось бы обратить внимание.
Если не хватит терпения, всегда есть способ попроще - клавиша DELETE :-) Некоторые игры масштабируются под размер экрана и могут быть успешно запущены как на телефонах с маленьким экраном, так и на телефонах с большим экраном. Для мидлетов на языках, отличных от английского, неплохо указывать язык мидлета в названии файла RU, IT и т.д.
Лучшая программа для работы с телефонами Sony Ericsson, позволяющая извлекать из телефона игры и java приложения - MyPhoneExplorer. Совершенно бесплатно качаем и обсуждаем тут |