Приложение, запущенное в ADL, можно отладить на компьютере, используемом для разработки. Можно также отладить приложение в устройстве iPhone.
Некоторые функциональные возможности AIR, которые не поддерживаются в устройстве iPhone, по-прежнему доступны при тестировании приложения с помощью ADL (на компьютере, используемом для разработки). Помните об этих различиях при тестировании содержимого на настольном компьютере. Дополнительные сведения см. в разделе «
API-интерфейсы ActionScript 3.0, неподдерживаемые на мобильных устройствах
».
Отладка приложения на компьютере, используемом для разработки
Чтобы отладить приложение на компьютере, используемом для разработки, в среде Flash Professional CS5, выполните следующие действия:
Выберите «Отладка» > «Отладка ролика» > «В AIR Debug Launcher (мобильная версия)».
Можно также отладить приложение, вызвав ADL из командной строки. Синтаксис:
adl –profile mobileDevice appDescriptorFile
Вместо
appDescriptorFile
укажите путь к файлу дескриптора приложения.
Обязательно выберите параметр
-profile mobileDevice
.
Отладка приложения в устройстве iPhone
Чтобы отладить приложение на iPhone, выполните следующие действия.
-
Выполните компиляцию приложения, предусмотрев возможность отладки.
-
Установите приложение на iPhone.
-
Включите модуль Wi-Fi на iPhone подключитесь к сети, в которой находится компьютер разработчика.
-
Начните сеанс отладки на рабочем компьютере. Во Flash Professional CS5 выберите «Отладка» > «Начать сеанс удаленной отладки» > «Файл ActionScript 3.0».
-
Запустите приложение на iPhone.
Отладочная версия приложения запрашивает IP-адрес рабочего компьютера. Введите IP-адрес и нажмите кнопку «ОК». Чтобы получить IP-адрес рабочего компьютера, выполните следующие действия.
-
В ОС Mac OS откройте меню Apple и выберите «Системные настройки». В окне «Системные настройки» нажмите на значок «Сеть». В окне «Настройки сети» указан IP-адрес.
-
В ОС Windows откройте командную строку и выполните команду
ipconfig
.
Сеанс отладки отображает весь вывод
trace()
, получаемый от приложения.
При отладке приложения, установленного на iPhone, Flash Professional CS5 поддерживает все функции отладки, в том числе проверку точек останова, пошаговый просмотр кода и мониторинг переменных.
Отладка с помощью функции диагностики визуализации с использованием графического процессора
Функция диагностики визуализации с использованием графического процессора позволяет проверить, как программа работает с аппаратным ускорением (это касается программ с режимом визуализации с использованием графического процессора). Для использования этой функции скомпилируйте программу с помощью инструмента PFI в командой строке и включите параметр
-renderingdiagnostics
:
pfi -package -renderingdiagnostics -target ipa-debug -connect ...
Флаг
-renderingdiagnostics
должен стоять непосредственно за флагом
-package
.
Функция диагностики визуализации с использованием графического процессора отмечает все экранные объекты цветными прямоугольниками со следующими значениями:
-
Синий — экранный объект не является растровым или кэшированным как растровый. Он визуализируется.
Если экранный объект, который не изменяется, постоянно отмечается синим цветом, возможно, он пересекается с подвижными экранными объектами. Например, этот объект может использоваться в фоне движущихся экранных объектов. Попробуйте кэшировать этот экранный объект как растровый.
Если синим отмечается объект, который уже кэширован, возможно, используется эффект, не поддерживаемый графическим процессором. К таким эффектам относятся некоторые режимы наложения, преобразования цветов, свойство
scrollRect
и маски.
Программа также отмечает синим экранные объекты, загруженные в графический процессор, размер которых превышает свободную память.
Программа регистрирует в журнале сообщения для каждого синего прямоугольника. Они выводятся вместе с остальными сообщениями
trace()
и отладочными сообщениями.
-
Зеленый — экранный объект является растровым или кэшированным как растровый. Он загружается в графический процессор впервые.
Если экранный объект постоянно отмечается зеленым цветом, значит, код программы воссоздает его. Это происходит, например, если временная шкала возвращается к кадру, в котором создается экранный объект. Попробуйте изменить содержимое так, чтобы одинаковые объекты не создавались повторно.
-
Красный — экранный объект является растровым или кэширован как растровый. Он загружается в графический процессор повторно.
Экранный объект отмечается красным каждый раз, когда он изменяется настолько, что программе необходимо выполнять повторную визуализацию растрового представления. Например, если 2D-объекту не задано свойство
cacheAsBitmapMatrix
, он повторно визуализируется при масштабировании или повороте. Повторная визуализация также выполняется при движении или изменении дочернего экранного объекта.
Каждый цветной прямоугольник бледнеет после четырех циклов перерисовки экрана (если в течение этих четырех циклов не возникают новые условия для окрашивания). Однако, если на экране ничего не меняется, диагностическая окраска тоже не меняется.
Представим, что у нас есть экранный объект — банан, размещенный на векторном фоне, который не кэширован как растровое изображение. При первой визуализации банан окрашивается в зеленый. Фон при первой визуализации окрашивается в синий:
При движении банана ЦП приходится повторно визуализировать фон, поэтому он отмечается синим цветом:
Синяя окраска фона указывает на перерисованные области, которые необходимо отправлять для обработки в графический процессор.
Тем не менее, если фон кэширован как растровое изображение, то при движении банана функция диагностики не будет окрашивать его:
Окраска не появляется, потому что растровое изображение фона сохраняется в графическом процессоре. Графический процессор может наложить банан на фон без обращения к ЦП.
Предположим, банан — это экранный 2D-объект, для которого не задано свойство
cacheAsBitmapMatrix
. При вращении или масштабировании экранного объекта функция диагностики визуализации окрашивает его в красный. Это означает, что программе приходится загружать в графический процессор новую версию экранного объекта:
|
|
|