Отладка приложения iPhone

Приложение, запущенное в 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, выполните следующие действия.

  1. Выполните компиляцию приложения, предусмотрев возможность отладки.

  2. Установите приложение на iPhone.

  3. Включите модуль Wi-Fi на iPhone подключитесь к сети, в которой находится компьютер разработчика.

  4. Начните сеанс отладки на рабочем компьютере. Во Flash Professional CS5 выберите «Отладка» > «Начать сеанс удаленной отладки» > «Файл ActionScript 3.0».

  5. Запустите приложение на 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 . При вращении или масштабировании экранного объекта функция диагностики визуализации окрашивает его в красный. Это означает, что программе приходится загружать в графический процессор новую версию экранного объекта: