Aplikacje można debugować na komputerze programisty, uruchamiając aplikację w programie ADL. Możliwe jest również debugowanie aplikacji na telefonie iPhone.
Niektóre elementy funkcjonalności środowiska AIR nieobsługiwane w telefonie iPhone są mimo to dostępne podczas testowania aplikacji za pomocą narzędzia ADL (na komputerze programisty). Należy pamiętać o tych różnicach podczas testowania treści na komputerze stacjonarnym. Więcej informacji można znaleźć w sekcji
Elementy interfejsu API ActionScript 3.0 nieobsługiwane na urządzeniach mobilnych
Debugowanie aplikacji na komputerze programisty
W celu debugowania aplikacji na komputerze programisty za pomocą programu Flash Professional CS5:
Wybierz kolejno opcje Debuguj > Debuguj film > W programie AIR Debug Launcher (zdalnie).
Możesz również debugować aplikacje, wywołując program ADL z wiersza poleceń: Oto jego składnia:
adl –profile mobileDevice appDescriptorFile
Zastąp element
appDescriptorFile
ścieżką do pliku deskryptora aplikacji.
Należy koniecznie uwzględnić opcję
-profile mobileDevice
.
Debugowanie aplikacji w telefonie iPhone
Aby debugować aplikację na telefonie iPhone:
-
Kompilowanie aplikacji z obsługą debugowania:
-
Zainstaluj aplikację na telefonie iPhone.
-
W telefonie iPhone włącz sieć Wi-Fi i podłącz się do tej samej sieci, do której podłączony jest komputer służący do programowania.
-
Uruchom sesję debugowania na komputerze używanym do tworzenia aplikacji. W programie Flash Professional CS5 wybierz kolejno opcje Debuguj > Rozpocznij zdalną sesję debugowania > ActionScript 3.0.
-
Uruchom aplikację na telefonie iPhone.
Zostanie wyświetlony monit wersji debugowanej aplikacji o podanie adresu IP komputera służącego do programowania. Wprowadź adres IP, a następnie stuknij przycisk OK. Aby odczytać adres IP komputera służącego do programowania:
-
W systemie Mac OS, w menu Apple, wybierz Preferencje systemowe. W oknie preferencji systemu kliknij ikonę Sieć. W oknie preferencji sieci zostanie wyświetlony adres IP.
-
W systemie Windows uruchom sesję wiersza poleceń, a następnie uruchom polecenie
ipconfig
.
W sesji debugowania będą wyświetlane wszelkie wyniki działania metody
trace()
z aplikacji.
W przypadku debugowania aplikacji zainstalowanej na telefonie iPhone program Flash Professional CS5 obsługuje wszystkie funkcje debugowania, w tym kontrolę punktów przerwań, przechodzenie kodu krok po kroku oraz monitorowanie zmiennych.
Diagnostyka renderowania przy użyciu procesora GPU
Funkcja diagnostyki renderowania przy użyciu procesora GPU umożliwia sprawdzenie, w jaki sposób aplikacja korzysta z akceleracji sprzętowej (dotyczy to aplikacji korzystających z trybu renderowania przy użyciu procesora GPU). Aby skorzystać z tej funkcji, należy skompilować aplikację za pomocą narzędzia PFI wywoływanego z wiersza poleceń, podając opcje
-renderingdiagnostics
:
pfi -package -renderingdiagnostics -target ipa-debug -connect ...
Flaga
-renderingdiagnostics
musi następować bezpośrednio po fladze
-package
.
Funkcja diagnostyki renderowania przy użyciu procesora GPU wyświetla kolorowe prostokąty w tle wszystkich obiektów wyświetlanych:
-
Niebieskie — obiekt wyświetlany nie jest bitmapą ani nie jest buforowany jako bitmapa i jest renderowany.
Jeśli niebieski prostokąt wyświetlany jest stale w tle obiektu wyświetlanego, który nie ulega zmianom, przyczyną może być przecinanie się tego obiektu z obiektami ruchomymi. Obiekt może być na przykład tłem ruchomych obiektów wyświetlanych. Należy rozważyć buforowanie takiego obiektu jako bitmapy.
Jeśli niebieski prostokąt wyświetlany jest w tle obiektu, który powinien być buforowany, to być może do renderowania obiektu stosowany jest efekt nieobsługiwany przez procesor GPU. Do efektów tych należą niektóre tryby mieszania, przekształcenia kolorów, właściwość
scrollRect
i maski.
Kolor niebieski oznacza również przekroczenie limitu pojemności pamięci przez obiekty przesłane do procesora GPU.
Dla każdego niebieskiego prostokąta aplikacja rejestruje komunikat. Komunikaty te są generowane razem z innymi komunikatami funkcji
trace()
i komunikatami debugowania.
-
Zielone — obiekt wyświetlany jest bitmapą lub jest buforowany jako bitmapa i po raz pierwszy jest przekazywany do procesora GPU.
Jeśli zielony prostokąt wyświetlany jest stale w tle obiektu wyświetlanego, wówczas kod w aplikacji ponownie tworzy obiekt wyświetlany. Taka sytuacja może wystąpić na przykład w momencie, gdy nastąpi powrót na osi czasu do klatki, która tworzy obiekt wyświetlany. Należy rozważyć modyfikację treści, aby zapobiec ponownemu tworzeniu identycznych obiektów.
-
Czerwone — obiekt wyświetlany jest bitmapą lub jest buforowany jako bitmapa i jest ponownie przekazywany do procesora GPU.
Czerwony prostokąt jest wyświetlany przy każdej zmianie obiektu wyświetlanego, która wymaga od aplikacji ponownego renderowania reprezentacji bitmapowej. Jeśli na przykład obiekt dwuwymiarowy nie ma ustawionej właściwości
cacheAsBitmapMatrix
, zostanie ponownie wyrenderowany w momencie skalowania lub obrotu. Ponowne renderowanie występuje także w przypadku przesunięcia lub zmiany podrzędnych obiektów wyświetlanych.
Kolorowy prostokąt zniknie po czterech cyklach przerysowania ekranu, jeśli ustąpi przyczyna wyświetlenia prostokąta. Jeśli jednak na ekranie nie wystąpią żadne zmiany, kolorowe prostokąty diagnostyczne nie ulegną zmianie.
Weźmy na przykład pod uwagę obiekt wyświetlany (banan) w postaci bitmapy wyświetlanej na wektorowym tle, które nie jest buforowane jako bitmapa. Przy pierwszym renderowaniu banan uzyska kolor zielony. Przy pierwszym renderowaniu tło uzyska kolor niebieski:
W trakcie przesuwania banana procesor główny musi ponownie renderować tło, co powoduje, że nad tłem zostaną wyświetlone niebieskie cienie:
Niebieskie cienie nad tłem odzwierciedlają regiony, które należy przekazać do procesora GPU.
Jeśli jednak tło jest buforowane jako bitmapa i banan zostanie przesunięty, wówczas funkcja diagnostyki renderowania nie wyświetli kolorowych odcieni:
Funkcja diagnostyki nie wyświetli kolorowych odcieni, ponieważ procesor GPU zachowa bitmapę tła. Procesor GPU może złożyć banan z tłem bez użycia procesora głównego.
Załóżmy, że banan jest dwuwymiarowym obiektem wyświetlanym, który nie ma ustawionej właściwości
cacheAsBitmapMatrix
. Każdy obrót (lub skalowanie) obiektu wyświetlanego spowoduje wyświetlenie przez funkcję diagnostyki renderowania czerwonego prostokąta. Takie wskazanie sygnalizuje konieczność przekazania przez aplikację nowej wersji obiektu wyświetlanego do procesora GPU: