Sie können die Anwendung auf dem Entwicklungscomputer debuggen, indem Sie die Anwendung in ADL ausführen. Das Debugging auf dem iPhone ist ebenfalls möglich.
Einige AIR-Funktionen, die auf dem iPhone nicht unterstützt werden, sind beim Testen einer Anwendung mit ADL (auf dem Entwicklungscomputer) verfügbar. Beachten Sie diese Unterschiede, wenn Sie Inhalte auf dem Desktop testen. Weitere Informationen finden Sie unter
ActionScript 3.0-APIs, die auf mobilen Geräten nicht unterstützt werden
.
Debuggen der Anwendung auf dem Entwicklungscomputer
So debuggen Sie die Anwendung auf dem Entwicklungscomputer mit Flash Professional CS5:
Wählen Sie „Debuggen“ > „Debuggen“ > „In AIR Debug Launcher (mobil)“.
Sie können die Anwendung auch debuggen, indem Sie ADL über die Befehlszeile aufrufen. Verwenden Sie dazu folgende Syntax:
adl –profile mobileDevice appDescriptorFile
Ersetzen Sie
appDescriptorFile
durch den Pfad zur Anwendungsdeskriptordatei.
Schließen Sie die
-profile mobileDevice
-Option mit ein.
Debuggen der Anwendung auf dem iPhone
So führen Sie das Debugging der Anwendung auf dem iPhone aus:
-
Kompilieren Sie die Anwendung mit Debug-Unterstützung:
-
Installieren Sie die Anwendung auf dem iPhone.
-
Schalten Sie beim iPhone die Wi-Fi-Funktion ein und stellen Sie eine Verbindung zu demselben Netzwerk her, mit dem auch der Entwicklungscomputer verbunden ist.
-
Starten Sie eine Debug-Sitzung auf dem Entwicklungscomputer. Wählen Sie in Flash Professional CS5 „Debuggen“ > „Remote-Debug-Sitzung beginnen“ > „ActionScript 3.0“.
-
Führen Sie die Anwendung auf dem iPhone aus.
Die Debug-Version der Anwendung fordert Sie zur Eingabe der IP-Adresse des Entwicklungscomputers auf. Geben Sie die IP-Adresse ein und tippen Sie auf „OK“. Ermitteln Sie die IP-Adresse des Entwicklungscomputers.
-
Unter Mac OS wählen Sie im Apple-Menü „Systemeinstellungen“. Klicken Sie im Fenster „Systemeinstellungen“ auf das Netzwerksymbol. Im Fenster „Netzwerkeinstellungen“ wird die IP-Adresse angezeigt.
-
Unter Windows rufen Sie die Befehlszeile auf und geben Sie den Befehl
ipconfig
ein.
Die Debug-Sitzung zeigt alle
trace()
-Ausgaben der Anwendung an.
Beim Debuggen einer auf dem iPhone installierten Anwendung unterstützt Flash Professional CS5 alle Debuggingfunktionen einschließlich Haltepunktsteuerung, schrittweise Codeausführung und Variablenüberprüfung.
Debuggen mit der GPU-Darstellungsdiagnose
Mit der GPU-Darstellungsdiagnose können Sie überprüfen, wie die Anwendung die Hardwarebeschleunigung nutzt (bei Anwendungen, die den GPU-Darstellungsmodus verwenden). Um diese Funktion zu verwenden, kompilieren Sie die Anwendung mit dem PFI-Tool in der Befehlszeile und schließen die
-renderingdiagnostics
-Option ein:
pfi -package -renderingdiagnostics -target ipa-debug -connect ...
Der
-renderingdiagnostics
-Kennzeichner muss direkt nach dem
-package
-Kennzeichner folgen.
Die GPU-Darstellungsdiagnosefunktion zeigt farbige Rechtecke für alle Anzeigeobjekte an:
-
Blau – Das Anzeigeobjekt ist keine Bitmap und wird nicht als Bitmap zwischengespeichert, und es wird dargestellt.
Wenn mehrere blaue Rechtecke für ein Anzeigeobjekt erscheinen, das sich nicht ändert, kann dies daran liegen, dass es sich mit sich bewegenden Anzeigeobjekten überschneidet. Das Anzeigeobjekt könnte zum Beispiel der Hintergrund für sich bewegende Anzeigeobjekte sein. Ziehen Sie das Zwischenspeichern als Bitmap für das Anzeigeobjekt in Betracht.
Wenn ein blaues Rechteck für ein Objekt angezeigt wird, das eigentlich zwischengespeichert werden soll, kann dies daran liegen, dass das Objekt einen Effekt verwendet, der von der GPU nicht angewendet werden kann. Betroffene Effekte sind zum Beispiel bestimmte Mischmodi, Farbtransformationen, die
scrollRect
-Eigenschaft und Masken.
Die Anwendung zeigt auch dann ein blaues Rechteck an, wenn zur GPU hochgeladene Anzeigeobjekte die Speichergrenzen überschreiten.
Die Anwendung protokolliert Meldungen für jedes blaue Rechteck. Die Anwendung gibt diese Meldungen zusammen mit anderen
trace()
- und Debug-Ausgabemeldungen an.
-
Grün – Das Anzeigeobjekt ist eine Bitmap oder wird als Bitmap zwischengespeichert, und es wird zum ersten Mal zur GPU hochgeladen.
Wenn für ein Anzeigeobjekt wiederholt ein grünes Rechteck angezeigt wird, erstellt der Code in der Anwendung das Anzeigeobjekt neu. Dies kann zum Beispiel vorkommen, wenn die Zeitleiste zu einem Bild zurückkehrt, das das Anzeigeobjekt erstellt. Ziehen Sie in Betracht, den Inhalt zu ändern, damit keine identischen Objekte neu erstellt werden.
-
Rot – Das Anzeigeobjekt ist eine Bitmap oder wird als Bitmap zwischengespeichert, und es wird erneut zur GPU hochgeladen.
Ein rotes Rechteck wird jedes Mal angezeigt, wenn sich ein solches Anzeigeobjekt auf eine Weise ändert, die eine Neu-Darstellung der Bitmaprepräsentation erforderlich macht. Zum Beispiel wird ein 2D-Objekt, dessen
cacheAsBitmapMatrix
-Eigenschaft nicht eingestellt ist, beim Skalieren oder Drehen neu dargestellt. Eine Neu-Darstellung erfolgt auch, wenn untergeordnete Anzeigeobjekt verschoben oder geändert werden.
Jedes farbige Rechteck wird ausgeblendet, nachdem die Bühne vier Neuzeichnungszyklen durchlaufen hat, sofern der Grund für die Färbung in diesen Zyklen nicht erneut auftritt. Wenn es keine Änderungen auf der Bühne gibt, ändert sich die Diagnosefarbe nicht.
Als Beispiel stellen Sie sich ein Bitmap-Anzeigeobjekt (eine Banane) vor einem Vektorhintergrund, der nicht als Bitmap zwischengespeichert wird, vor. Wenn die Banane zum ersten Mal dargestellt wird, ist sie grün. Wenn der Hintergrund zum ersten Mal dargestellt wird, ist er blau:
Wenn sich die Banane bewegt, muss die CPU den Hintergrund neu darstellen, sodass die blaue Färbung über dem Hintergrund eingeblendet wird:
Die blaue Färbung über dem Hintergrund kennzeichnet die neu gezeichneten Bereiche, die an die GPU gesendet werden müssen.
Wenn der Hintergrund jedoch nicht als Bitmap zwischengespeichert wird, zeigt die Darstellungsdiagnosefunktion beim Bewegen der Banane keine Einfärbungen an:
Die Diagnosefunktion zeigt keine Einfärbungen an, da die GPU die Hintergrund-Bitmap weiterhin verwenden kann. Die GPU kann die Banane vor dem Hintergrund zeichnen, ohne die GPU einzubeziehen.
Stellen Sie sich die Banane als 2D-Anzeigeobjekt vor, dessen
cacheAsBitmapMatrix
-Eigenschaft nicht gesetzt ist. Wenn das Anzeigeobjekt gedreht (oder skaliert) wird, zeigt die Diagnosefunktion eine rote Einfärbung an. Damit wird angezeigt, dass die Anwendung eine neue Version des Anzeigeobjekts zur GPU hochladen muss: