Fouten opsporen in een iPhone-toepassing

Op de computer waarop de toepassing is ontwikkeld kunt u de toepassing in ADL uitvoeren om fouten op te sporen. U kunt ook op de iPhone fouten in de toepassing opsporen.

Sommige AIR-functionaliteit die niet op de iPhone wordt ondersteund is wel beschikbaar bij het testen van toepassingen met ADL (op de computer waarop de toepassing wordt ontwikkeld). Houd rekening met deze verschillen wanneer u de inhoud op een desktopcomputer test. Zie API's van ActionScript 3.0 die niet worden ondersteund op mobiele apparaten voor meer informatie.

Fouten in toepassingen opsporen op de computer waarop toepassingen worden ontwikkeld

Zo gaat u te werk om met Flash Professional CS5 fouten in de toepassing op te sporen op de computer waarop de toepassing wordt ontwikkeld:

Kies Foutopsporing > Fouten opsporen in film > In AIR Debug Launcher (mobiel).

U kunt ook foutopsporing starten door ADL vanaf de opdrachtregel aan te roepen. Dit is de syntaxis:

adl –profile mobileDevice appDescriptorFile

Vervang appDescriptorFile door het pad naar het descriptorbestand van de toepassing.

Zorg ervoor dat u de optie -profile mobileDevice opneemt.

Fouten in de toepassing op de iPhone opsporen

Ga als volgt te werk om fouten in de toepassing op te sporen op de iPhone:

  1. Compileer de toepassing met ondersteuning voor foutopsporing:

  2. Installeer de toepassing op de iPhone.

  3. Schakel Wi-Fi in op de iPhone en breng een verbinding tot stand met het netwerk waarop de ontwikkelcomputer is aangesloten.

  4. Start een foutopsporingssessie op uw ontwikkelcomputer. Kies in Flash professional CS5 Foutopsporing > Foutopsporingssessie op afstand starten > ActionScript 3.0.

  5. Voer de toepassing uit op de iPhone.

    De versie voor het opsporen van fouten in de toepassing vraagt u om het IP-adres van de ontwikkelcomputer. Voer het IP-adres in en tik op OK. Haal het IP-adres op van de ontwikkelcomputer.

    • Kies in Apple OS in het menu Apple de optie Systeemvoorkeuren. Klik in het venster Systeemvoorkeuren op het netwerkpictogram. In het venster Netwerkvoorkeuren wordt het IP-adres vermeld.

    • Start in Windows een opdrachtregelsessie en voer de opdracht ipconfig uit.

De foutopsporingssessie geeft elke trace() -uitvoer van de toepassing weer.

Wanneer u fouten opspoort in een toepassing die is geïnstalleerd op de iPhone, biedt Flash Professional CS5 ondersteuning voor alle foutopsporingsfuncties, waaronder controle van breekpunten en variabelen en het doorlopen van code.

Foutopsporing met de diagnostische functie voor GPU-rendering

Met behulp van de diagnostische functie voor GPU-rendering kunt u bij toepassingen die de GPU-rendermodus gebruiken zien hoe hardwareversnelling door de toepassing wordt gebruikt. Als u deze functie wilt gebruiken, compileert u de toepassing met de PFI-opdrachtregeltoepassing. Gebruik hierbij de optie -renderingdiagnostics :

pfi -package -renderingdiagnostics -target ipa-debug -connect ...

De vlag -renderingdiagnostics moet de vlag -package direct volgen.

De diagnostische functie voor GPU-rendering geeft gekleurde rechthoeken voor alle weergaveobjecten weer:

  • Blauw - Het weergaveobject is geen bitmap of is niet opgeslagen als een bitmap, en wordt gerenderd.

    Als er herhaaldelijk een blauwe rechthoek wordt weergegeven voor een weergaveobject dat niet wordt gewijzigd, kan dit mogelijk aangeven dat het object wordt gesneden door bewegende weergaveobjecten. Het weergaveobject kan bijvoorbeeld dienen als achtergrond voor bewegende weergaveobjecten. U kunt overwegen het weergaveobject in de cache op te slaan als een bitmap.

    Als een blauwe rechthoek wordt weergegeven voor een object waarvan u denkt dat het in de cache moet worden opgeslagen, kan dit mogelijk worden veroorzaakt door een object dat een effect gebruikt dat niet door de GPU kan worden toegepast. Effecten die niet door de GPU kunnen worden toegepast zijn bepaalde overvloeimodi, kleurtransformaties, de eigenschap scrollRect en maskers.

    De toepassing geeft ook een blauwe rechthoek weer als naar de GPU geüploade weergaveobjecten de geheugenlimieten overschrijden.

    Bij elke blauwe rechthoek wordt er door de toepassing een bericht in het logboek vastgelegd. Deze berichten worden door de toepassing getoond samen met andere trace() - en foutopsporingsberichten.

  • Groen - Het weergaveobject is een bitmap of is opgeslagen als een bitmap en wordt voor het eerst geüpload naar de GPU.

    Als er herhaaldelijk een groene rechthoek wordt weergegeven voor een weergaveobject, wordt het weergaveobject opnieuw gemaakt door de code in de toepassing. Dit kan bijvoorbeeld gebeuren als er op de tijdlijn wordt teruggekeerd naar een frame waarin het weergaveobject wordt gemaakt. U kunt overwegen de inhoud aan te passen om te voorkomen dat er opnieuw identieke objecten worden gemaakt.

  • Rood - Het weergaveobject is een bitmap of is opgeslagen als een bitmap en wordt opnieuw geüpload naar de GPU.

    Er wordt een rode rechthoek weergegeven telkens als het weergaveobject dusdanig wordt gewijzigd dat de toepassing de bitmaprepresentatie opnieuw moet renderen. Een 2D-object waarvoor de eigenschap cacheAsBitmapMatrix niet is ingesteld, wordt bijvoorbeeld opnieuw gerenderd wanneer het wordt geschaald of geroteerd. Wanneer onderliggende weergaveobjecten bewegen of worden gewijzigd, worden deze ook opnieuw gerenderd.

Elke gekleurde rechthoek vervaagt na vier vernieuwingscycli van het scherm, mits de reden van de kleur zich tijdens deze cycli niet opnieuw voordoet. Als er zich echter geen wijzigingen op het scherm voordoen, verandert de kleur van de diagnose niet.

Kijk bijvoorbeeld eens naar een bitmapweergaveobject (een banaan) vóór een vectorachtergrond die niet als een bitmap is opgeslagen. Als de banaan voor het eerst wordt gerenderd, is deze groen. Als de achtergrond voor het eerst wordt gerenderd, is deze blauw:

Als de banaan beweegt, moet de CPU de achtgrond opnieuw renderen, waardoor er een blauwe waas over de achtergrond komt:

De blauwe waas over de achtergrond geeft de vernieuwde gebieden aan die naar de GPU moeten worden verzonden.

Als de banaan echter is opgeslagen als een bitmap en de banaan beweegt, worden er door de diagnostische functie voor rendering geen gekleurde tinten weergegeven:

De diagnostische functie geeft geen gekleurde tinten weer, omdat de GPU de achtergrondbitmap behoudt. De GPU kan de banaan samenstellen met de achtergrond, zonder dat hiervoor de CPU nodig is.

Stel dat de banaan een 2D-weergaveobject is waarvoor de eigenschap cacheAsBitmapMatrix niet is ingesteld. Telkens wanneer het weergaveobject wordt geroteerd (of geschaald) geeft de diagnostische functie voor rendering een rode rechthoek weer. Dit geeft aan dat de toepassing een nieuwe versie van het weergaveobject moet uploaden naar de GPU: