Создание игр для мобильных телефонов - [12]
В копилку Игрока
Стандартный компилятор Java входит в состав пакета Java Software Development Kit (SDK), который можно бесплатно загрузить с Web-сайта Sum Microsystems (http://javasun.com/). Также там вы найдете и J2ME Wireless Toolkit, необходимый для разработки игр на Java.
Приложения, написанные с использованием J2ME, в соответствии со спецификацией MIDP называются мидлеты (MIDlet). Поэтому любая игра, созданная на J2ME, является мидлетами. Классы мидлетов хранятся в файлах байт-кода с расширением. class. Однако перед распространением классы должны быть проверены, чтобы гарантировать невыполнение запрещенных операций. Дело в том, что эта предварительная проверка необходима вследствие ограничений виртуальной машины, используемой в мобильных устройствах. Эта виртуальная машина называется K Virtual Machine, или KVM. Чтобы KVM была как можно меньше и эффективнее, необходимо минимизировать число верификаций, выполняемых во время выполнения приложения. Поэтому некоторые из этих верификаций выполняются еще на стадии разработки в процессе предварительной верификации.
В копилку Игрока
Название KVM также имеет отношение к требованиям виртуальной машины к ресурсам: KVM необходимы килобайты памяти, а не мегабайты. Иначе говоря, KVM разработана так, чтобы она помещалась в килобайтах памяти, в отличие от виртуальной машины J2SE, которой могут потребоваться мегабайты.
Предварительная верификация выполняется непосредственно после компиляции, ее результатом является новый файл класса, который уже проверен и готов к распространению. Мидлеты (MIDlet) должны быть упакованы в специальные архивы JAR (Java Archive – архив Java), они очень похожи на ZIP-архивы, которые вы, вероятно, использовали для сжатия больших файлов. Мидлеты (MIDlet) также требуют дополнительного описания, которое включается в JAR-файл. Ниже перечислена основная информация, обычно включаемая в архив JAR:
► классы мидлета;
► вспомогательные классы;
► ресурсы (изображения, звуки и т. п.);
► файлы манифестов (.mf);
► дескриптор приложения (.jad).
В копилку Игрока
Файлы JAR используются для упаковки Java-классов и последующего более эффективного распространения. Файл манифеста – это текстовый файл с описанием классов, включенных в JAR-архив.
Дескриптор приложения, файл JAD, – это файл, в котором содержится описание мидлетов, хранящихся в файле JAR. Обратите внимание, что я сказал «мидлеты» (множественное число). Да, зачастую в файле JAR хранится несколько мидлетов. Такой набор мидлетов называется пакетом мидлетов (MIDlet suit). В случае мобильных игр вам, вероятно, захочется предложить несколько игр в качестве единого продукта (например, набор простейших игр), в этом случае вам придется поместить все игры в один файл JAR.
В основе пакетов мидлетов лежит идея одновременного использования несколькими приложениями доступных ресурсов мобильного устройства. KVM-устройства необходимы для обеспечения навигации и выбора конкретного мидлета из пакета. Файл JAD, включенный в JAR-файл, очень полезен, поскольку в нем содержится информация, необходимая для установки и доступа к конкретному мидлету.
Я знаю, вы, вероятно, подумали, что этот раздел будет посвящен разработке игр на J2ME, а не устройству файлов JAR или пакетов мидлетов. На самом деле, чтобы понять процесс разработки приложений, вам необходимо знать некоторые основы сборки мидлетов для распространения. Процесс разработки мидлетов можно разбить на следующие стадии:
1. редактирование;
2. компиляция;
3. предварительная верификация;
4. эмуляция;
5. тестирование на устройстве;
6. использование.
Шаги 1 и 2 должны быть вам хорошо знакомы, поскольку эти стадии обязательны при программировании на любом из языков. Этапы 3 и 4 немного отличаются. Вы уже знаете, что шаг предварительной верификации необходим для подтверждения того, что приложение не выполняет недопустимых действий (например, засорение памяти устройства). На шаге 4 вы проверяете свой мидлет с помощью специального инструмента – эмулятора.
Эмулятор J2ME представляет собой не то, о чем говорит название. Эмулятор имитирует реальный мобильный телефон в вашем настольном компьютере. Это позволяет тестировать мидлеты, не загружая код в мобильное устройство. Отладку также проще осуществлять, если приложение запущено в эмуляторе. Шаг 5 в процессе разработки мидлета – это его тестирование на реальном устройстве. В реальности, вам, вероятно, придется проверять работоспособность созданного приложения на нескольких различных устройствах, чтобы убедиться, что оно работает правильно. Такая проверка следует сразу после того, как вы устранили все ошибки в игре и близки к распространению приложения как готового продукта. Другими словами, перед тестированием на реальных устройствах приложение проходит тестирование на эмуляторе.
Последний этап разработки игры – это ее распространение. Распространение игры может быть очень простым, например, вы можете отправить ее по электронной почте друзьям, и они установят игру на своих мобильных телефонах, или весьма сложным, если вы продаете игру и распространяете ее через беспроводные сети. В последнем случае вам придется решить ряд технических проблем, например, убедиться, что ваша игра соответствует стандартам безопасности, а загружаемый файл имеет цифровую подпись с действующим сертификатом безопасности. О распространении мобильных игр вы узнаете из главы 16.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.