Создание игр для мобильных телефонов - Майкл Моррисон
Шрифт:
Интервал:
Закладка:
Совет Разработчику
Стандартный вывод очень похож на стандартное устройство ошибок. В реальности они очень похожи. На практике очень полезно применять описанную выше методику для вывода отладочной информации.
Отслеживание стека вызовов
Незаменимый инструмент поиска сложных ошибок – это использование стека вызовов. Метод стека вызовов – это ряд методов, вызываемых для перехода в текущую выполняемую строку кода. Изучая стек вызовов, вы видите, какие методы вызываются. Эта информация помогает выявить неверный вызов методов.
Чтобы просмотреть стек вызовов, необходимо применить метод printStackTrace() класса Throwable. Поскольку метод printStackTrace() принадлежит классу Throwable, то для просмотра стека вызовов необходимо создать соответствующий объект. Все исключения являются производными от класса Throwable, поэтому каждый раз, когда в программе возникает исключение, вы можете просмотреть стек вызовов. Посмотрите на фрагмент кода:
try {
int nums[] = new int[5];
for(int i = 0; i < 10; i++)
nums[i] = 6670;
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("**Exception** : " + e.getMessage());
e.printStackTrace(); //Вывести стек вызовов
}В этом коде индекс массива nums выходит за пределы внутри цикла for, в результате возникает исключение ArraylndexOutOfBoundsException. Это исключение выводится на стандартное устройство вывода в конструкции catch, здесь же вызывается метод printStackTrace().
Выбор отладчика
Когда вы решили приступить к отладке кода, важно выбрать отладчик. Отладчик – это бесценное средство для поиска и устранения ошибок в программе, он напрямую определяет, сколько времени вы потратите на поиск и устранение ошибок. Следовательно, вы должны мудро распределить ресурсы и выбрать отладчик, который в наибольшей степени подходит к вашему стилю отладки.
Существует ряд интегрированных сред разработки, в состав которых входят визуальные отладчики Java. Такие отладчики хороши и обычно содержат массу дополнительных возможностей. По возможности приобретите один из таких отладчиков.
Помните, что важно выбрать наиболее подходящий вам отладчик, поскольку это напрямую определяет то, как быстро вы сможете найти ошибки. К счастью, практически все отладчики реализуют основные функции отладки (пошаговое выполнение, отслеживание переменных и использование точек останова)....В копилку Игрока
Для справки, я упрямый и принадлежу к старой школе, что сочетается не очень хорошо. Я говорю вам это потому, что я разработал код примеров, приводимых в книге, используя для отладки только метод System.out.println(). Если вы найдете ошибки в моем коде, то, по крайней мере, у меня есть оправдание! А если серьезно, то нет необходимости использовать сложные инструменты, пока вы пишете надежный код и выполняете тестирование.
Java 2 SDK поставляется со стандартным отладчиком (jab), который реализует множество функций отладки, которые я упоминал ранее. Этот отладчик работает с командной строкой, в нем нет графики и функций «покажи и щелкни». Если вы не готовы использовать отладчики сторонних производителей, то попробуйте применить jab. Поработав с этим отладчиком, вы поймете, что он хорошо подходит для задач отладки.
Перед тем как начать использовать jab, необходимо откомпилировать код таким образом, чтобы он содержал отладочную информацию. Компилятор Java делает это, если использовать ключ – g. В результате компилятор сформирует отладочные таблицы, содержащие информацию о номерах строк и переменных.
...Совет Разработчику
Обсуждение отладчика jab не входит в эту книгу, вы можете найти необходимую информацию в книгах по Java Или вы можете изучить онлайн пособие по использованию отладчика jab на сайте компании Sun http://javasun.com/learning/.
Распространение мобильных игр
В отличие от традиционных компьютерных и консольных игр, которые обычно распространяются на компакт-дисках, мобильные игры обычно загружаются и устанавливаются непосредственно по беспроводной сети. Это связано с тем, что большинство мобильных телефонов не поддерживают средства переноса данных, как CD-ROM, а используют сетевое соединение. Зная, что ваши игры будут устанавливаться через беспроводное соединение, вы, вероятно, можете догадаться, что есть ряд вопросов по установке, которые следует рассмотреть, прежде чем вы сможете сделать вашу игру доступной для всех.
Существует два варианта загрузки и установки мобильных игр:
► локальная установка – мидлет передается с компьютера на мобильный телефон посредством соединения с компьютером, например, USB-кабелем;
► удаленная установка – мидлет загружается и устанавливается через беспроводное соединение.
Первый вариант вы уже использовали, когда загружали игры в мобильный телефон для тестирования. Этот вариант загрузки устройствозависимый, то есть вы должны быть уверены, что телефон поддерживает соединение с компьютером. Также вам придется положиться на программное обеспечение телефона – Application Management Software (Менеджер приложений), – которое поможет корректно установить мидлет на мобильный телефон.
...В копилку Игрока
Для выполнения «локальной установки» ваших мобильных игр на сотовый телефон для последующего тестирования необходим специальный кабель. Большинство мобильных телефонов используют USB или последовательный кабель для выполнения соединения, хотя некоторые телефоны выполняют это посредством инфракрасного порта или Bluetooth. Конечно, в последнем случае необходимо, чтобы компьютер поддерживал прямое Bluetooth-соединение, но вы можете купить USB-адаптер Bluetooth, который просто вставляется в USB-порт компьютера.
Второй подход также использует Менеджер приложений мобильного телефона, однако при этом игра закачивается с помощью удаленного сетевого соединения. В этом случае обычно дается ссылка на Web-сайт, содержащий JAD-файл игры. Загрузив JAD-файл, содержащий информацию об игре, например, размер JAR-файла, вы можете загрузить сам JAR-файл. Далее установка выполняется средствами Менеджера приложений точно так, будто вы загрузили игру через прямое соединение.
Итак, подведем итог, важное отличие между двумя способами установки мобильных игр – это способ получения JAR-файла. Он передается или через локальное соединение, или загружается непосредственно с сервера. Поскольку первый подход практически не зависит от Менеджера приложений телефона, я сфокусируюсь на рассмотрении второго способа, который является наиболее важным для распространения мобильных игр.
Понятие о распространении через беспроводное соединение
Процесс загрузки и установки игры на мобильный телефон известен как распространение через беспроводное соединение (over-the-air provisioning) или OTA распространение.
Такой способ распространения мобильных игр характерен для беспроводных мобильных устройств. Идея состоит в том, чтобы позволить пользователям получить информацию о мобильном приложении до того, как они приступят к его загрузке и установке. Кроме того, распространение через беспроводное соединение полагается на существующие надежные технологии доставки файлов мидлета. Доступ к мобильным играм осуществляется через ссылки на web-страницах, загрузка осуществляется непосредственно с сервера.
Чтобы дать возможность пользователям загрузить игру через сеть, необходимо указать на нее ссылку на сервере. При распространении игры обычно используются следующие файлы:
► JAD-файл;
► JAR-файл;
► HTML – или WML-страницу с ссылкой на JAR-XJAD-файл.
Как вы уже знаете, JAD-файл – это небольшой текстовый файл, который содержит описание мидлета или пакета мидлетов. В данном случае – это сама игра, упакованная для распространения. Вы уже знакомы с упаковкой мобильных игр в JAR-файлы и созданием JAD-файлов для тестирования в эмуляторе J2ME. Единственный недостающий компонент – это HTML– или WML-страница, содержащая ссылку на JAR-или JAD-файл.
...Совет Разработчику
Если вы забыли, то JAR-файл мобильной игры содержит все откомпилированные файлы классов игры, файл манифеста (аналогичный JAR-файлу) и игровые ресурсы (изображения, звуки и т. п.).
Используя беспроводное соединение для распространения игры, вы можете указать страницу в Интернет, содержащую ссылку на JAR-файл игры. Но это не очень удачный подход, поскольку пользователю, чтобы узнать об игре, придется загрузить файл целиком. Цель JAD-файла – дать информацию о том, что приобретает пользователь. Я не имею в виду, что пользователь получает представление о том, как в нее играть или что-то аналогичное, я говорю о размере файла, о версии игры и т. п.
...В копилку Игрока
Не забудьте, что большинству пользователей мобильных телефонов важен объем данных, получаемых по беспроводной сети. Вот почему JAD-файлы играют столь значительную роль при распространении мобильных игр по беспроводной сети: они предоставляют пользователю информацию об игре при минимальных затратах на получаемые данные.