Débogage d’une application iPhone

Vous pouvez déboguer l’application sur l’ordinateur de développement si elle s’exécute dans ADL. Vous pouvez également la déboguer sur l’iPhone.

Certaines fonctionnalités AIR qui ne sont pas prises en charge par l’iPhone sont néanmoins disponibles lorsque vous testez une application avec ADL (sur l’ordinateur de développement). Tenez compte de ces différences lorsque vous testez le contenu sur le bureau. Pour plus d’informations, voir API d’ActionScript 3.0 non prises en charge sur les périphériques mobiles .

Débogage de l’application sur l’ordinateur de développement

Pour déboguer l’application sur l’ordinateur de développement avec Flash Professional CS5 :

Sélectionnez Débogage > Déboguer l’animation > dans l’application de débogage du lanceur AIR (mobile).

Vous pouvez également déboguer l’application en appelant ADL à partir de la ligne de commande. La syntaxe requise est la suivante :

adl –profile mobileDevice appDescriptorFile

Remplacez appDescriptorFile par le chemin du fichier descripteur de l’application.

Veillez à inclure l’option -profile mobileDevice .

Débogage de l’application sur l’iPhone

Pour déboguer l’application sur l’iPhone :

  1. Compilez l’application en prenant en charge le débogage :

  2. Installez l’application sur l’iPhone.

  3. Sur l’iPhone, activez le mode Wi-Fi et connectez-vous au même réseau que l’ordinateur de développement.

  4. Démarrez une session de débogage sur l’ordinateur de développement. Dans Flash Professional CS5, sélectionnez Débogage > Commencer la session de débogage à distance > ActionScript 3.0.

  5. Exécutez l’application sur l’iPhone.

    La version de débogage de l’application vous invite à entrer l’adresse IP de l’ordinateur de développement. Entrez l’adresse IP et touchez le bouton OK. Pour obtenir l’adresse IP de l’ordinateur de développement :

    • Sous Mac OS, sélectionnez Préférences Système depuis le menu Pomme. Dans la fenêtre Préférences Système, cliquez sur l’icône de réseau. La fenêtre Préférences Réseau contient l’adresse IP.

    • Sous Windows, ouvrez une session de ligne de commande et exécutez la commande ipconfig .

La session de débogage affiche toute sortie trace() issue de l’application.

Lors du débogage d’une application installée sur l’iPhone, Flash Professional CS5 prend en charge toutes les fonctions de débogage, y compris le contrôle du point d’arrêt, le défilement du code et la supervision des variables.

Débogage avec l’outil de diagnostic du rendu sur GPU

La fonction de diagnostic du rendu sur GPU permet de comprendre la façon dont l’application utilise l’accélération matérielle (pour les applications qui utilisent le mode de rendu sur GPU). Pour utiliser cette fonction, compilez l’application à l’aide de l’outil PFI en ligne de commande, puis incluez l’option -renderingdiagnostics :

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

L’indicateur -renderingdiagnostics doit suivre directement l’indicateur -package .

La fonction de diagnostic du rendu sur GPU affiche des rectangles colorés pour tous les objets d’affichage :

  • Bleu : l’objet d’affichage n’est pas un bitmap ou n’est pas mis en cache sous forme de bitmap, et il est en cours de rendu.

    Si un rectangle bleu apparaît plusieurs fois pour un objet d’affichage qui ne change pas, il est possible que ce dernier soit lié d’une manière ou d’une autre à des objets d’affichage en mouvement. Par exemple, l’objet d’affichage peut être l’arrière-plan d’objets d’affichage en mouvement. Il est peut-être souhaitable de mettre en cache l’objet d’affichage sous forme de bitmap.

    Si un rectangle bleu apparaît pour un objet d’affichage qui, selon vous, devrait être mis en cache, il est possible que l’objet utilise un effet que le processeur graphique ne peut pas appliquer. Ces effets peuvent être les suivants : certains modes de fusion, des transformations de couleur, la propriété scrollRect et des masques.

    L’application affiche également des rectangles bleus si les objets d’affichage chargés sur le processeur graphique dépassent les limites de mémoire.

    L’application génère des messages pour chaque rectangle bleu. Elle publie ces messages avec des messages trace() et des messages de débogage.

  • Vert : l’objet d’affichage est un bitmap ou mis en cache sous forme de bitmap et il est chargé pour la première fois sur le processeur graphique.

    Si un rectangle vert apparaît plusieurs fois pour un objet d’affichage, le code dans l’application est en train de recréer l’objet d’affichage. C’est notamment le cas lorsque le scénario revient à une image qui crée l’objet d’affichage. Il est peut-être souhaitable de modifier le contenu pour éviter de créer des objets identiques.

  • Rouge : l’objet d’affichage est un bitmap ou mis en cache sous forme de bitmap et il est à nouveau chargé sur le processeur graphique.

    Un rectangle rouge apparaît dans le cas où chaque changement d’un objet d’affichage implique un nouveau rendu de la représentation sous forme de bitmap de la part de l’application. Par exemple, un objet 2D dont la propriété cacheAsBitmapMatrix n’est pas définie est à nouveau rendu lorsque l’utilisateur le fait pivoter ou le met à l’échelle. C’est aussi le cas lorsque des objets d’affichage enfants bougent ou changent.

Chaque rectangle perd sa couleur après quatre cycles de retraçage, à condition que la coloration ne se produise plus durant ces cycles. Toutefois, si aucun changement ne se produit à l’écran, les couleurs de diagnostic ne changent pas.

Prenons par exemple un objet d’affichage bitmap (une banane) devant un arrière-plan de vecteurs non mis en cache sous forme de bitmap. Lors du premier rendu de la banane, celle-ci est de couleur verte. Lors du premier rendu de l’arrière-plan, celui-ci est de couleur bleue :

Au fur et à mesure que la banane bouge, l’unité centrale doit effectuer un nouveau rendu de l’arrière-plan, ce qui provoque l’apparition d’une trame bleue sur l’arrière-plan :

La trame bleue sur l’arrière-plan indique les zones retracées devant être envoyées au processeur graphique.

Néanmoins, si l’arrière-plan est mis en cache sous forme de bitmap, lorsque la banane bouge, la fonction de diagnostic du rendu n’affiche aucune couleur :

La fonction de diagnostic n’affiche aucune couleur, car le processeur graphique retient l’image bitmap de d’arrière-plan. Le processeur graphique peut créer une épreuve couleurs de la banane avec l’arrière-plan sans avoir recours à l’unité centrale.

Supposons que la banane est un objet 2D dont la propriété cacheAsBitmapMatrix n’est pas définie. Dès que l’utilisateur fait pivoter (ou met à l’échelle) l’objet d’affichage, la fonction de diagnostic du rendu s’affiche en rouge. Cela indique que l’application doit charger une nouvelle version de l’objet d’affichage sur le processeur graphique :