Depuración de una aplicación para iPhone

Puede depurar la aplicación en el equipo de desarrollo con la aplicación ejecutándose en ADL. También puede depurar la aplicación en el iPhone.

Ciertas funciones de AIR que no se admiten en el iPhone siguen disponibles al probar la aplicación con ADL (en el equipo de desarrollo). Tenga en cuenta estas diferencias cuando pruebe contenido en el equipo de escritorio. Para obtener más información, consulte API de ActionScript 3.0 no admitidas en dispositivos móviles .

Depuración de la aplicación en el equipo de desarrollo

Para depurar la aplicación en el equipo de desarrollo con Flash Professional CS5:

Elija Depurar > Depurar película > En AIR Debug Launcher (móvil).

También puede depurar la aplicación llamando a ADL desde la línea de comandos. Ésta es la sintaxis:

adl –profile mobileDevice appDescriptorFile

Reemplace appDescriptorFile por la ruta del archivo descriptor de la aplicación.

No olvide incluir la opción -profile mobileDevice .

Depuración de la aplicación en el iPhone

Para depurar la aplicación en el iPhone:

  1. Compile la aplicación sin soporte de depuración:

  2. Instale la aplicación en el iPhone.

  3. En el iPhone, active la funcionalidad Wi-Fi y conéctese a la misma red que la del equipo de desarrollo.

  4. Inicie la sesión de depuración en el equipo de desarrollo. En Flash Professional CS5, elija Depurar > Iniciar sesión remota de depuración > ActionScript 3.0.

  5. Ejecute la aplicación en el iPhone.

    La versión de depurador de la aplicación le pedirá la dirección IP del equipo del desarrollador. Introduzca la dirección IP y toque el botón Aceptar. Para obtener la dirección IP del equipo de desarrollo:

    • En Mac OS, en el menú Apple, elija Preferencias de Sistema. En la ventana Preferencias de Sistema, haga clic en el icono Red. La ventana de preferencias de red muestra la dirección IP.

    • En Windows, inicie una sesión de línea de comandos y ejecute el comando ipconfig .

La sesión de depuración muestra cualquier elemento trace() de la aplicación.

Cuando se depura una aplicación instalada en el iPhone, Flash Professional CS5 admite todas las funciones de depuración, incluido el control de puntos de salto, el recorrido del código y la supervisión de variables.

Depuración con diagnóstico de procesamiento de GPU

La función de diagnóstico de procesamiento de GPU permite ver el uso que hace la aplicación de la aceleración de hardware (para aplicaciones que utilicen el modo de procesamiento de GPU). Para usar esta función, compile la aplicación con la herramienta PFI de la línea de comandos e incluya la opción -renderingdiagnostics :

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

El indicador -renderingdiagnostics debe seguir directamente al identificador -package .

La función de diagnóstico de procesamiento de GPU muestra rectángulos de colores para todos los objetos de visualización:

  • Azul: el objeto de visualización no es un mapa de bits o está guardado en caché como mapa de bits y se está procesando.

    Si un objeto de visualización que no se modifica siempre se ve en color azul, puede deberse a que interseque con objetos de visualización en movimiento. Por ejemplo, el objeto de visualización puede ser un fondo de objetos de visualización en movimiento. Considere guardar el objeto de visualización en caché como un mapa de bits.

    Si un objeto que cree que debería estar en caché se visualiza en azul, puede deberse a que el objeto esté usando un efecto que no puede aplicarse al GPU. Estos efectos incluyen ciertos modos de mezcla, transformaciones de color, la propiedad scrollRect y máscaras.

    La aplicación también muestra el color azul si los objetos de visualización cargados en la GPU superan los límites de memoria.

    La aplicación registra mensajes para cada rectángulo azul. La aplicación envía estos mensajes junto con otros mensajes trace() y de salida de depuración.

  • Verde: el objeto de visualización es un mapa de bits o está guardado en caché como mapa de bits y se está cargando en la GPU por primera vez.

    Si un objeto de visualización aparece muchas veces en verde, el código de la aplicación está recreando el objeto de visualización. Por ejemplo, esto puede ocurrir si la línea de tiempo vuelve a un fotograma que crea el objeto de visualización. Considere modificar el contenido para evitar la recreación de objetos idénticos.

  • Rojo: el objeto de visualización es un mapa de bits o está guardado en caché como mapa de bits y se está cargando de nuevo en la GPU.

    Se visualiza el color rojo cada vez que un objeto de visualización cambia de modo que requiera que la aplicación vuelva a procesar la representación del mapa de bits. Por ejemplo, si un objeto 2D no tiene la propiedad cacheAsBitmapMatrix ajustada, se vuelve a procesar escalado o girado. El reprocesamiento también se produce cuando los objetos secundarios se desplazan o cambian.

Cada rectángulo de color se desvanece tras cuatro ciclos de redibujo en pantalla, siempre y cuando el motivo del color no se vuelva a producir durante dichos ciclos. Ahora bien, si no se producen cambios en pantalla, los colores del diagnóstico no cambian.

Por ejemplo, considere un objeto de visualización de mapa de bits (un plátano) en frente de un fondo vectorial que no está guardado como mapa de bits. Cuando se procesa el plátano por primera vez, se colorea en verde. Cuando se procesa el fondo por primera vez, se colorea en azul:

Si el plátano se desplaza, la CPU debe reprocesar el fondo y hará que el sombreado azul aparezca sobre el fondo:

El sombreado azul sobre el fondo refleja las regiones redibujadas que se deben enviar al GPU.

Sin embargo, si el fondo se guarda en caché como mapa de bits, cuando se desplace el plátano, la función de diagnóstico de procesamiento no mostrará ningún color:

La función de diagnóstico de procesamiento no muestra ningún color dado que la GPU conserva el mapa de bits de fondo. La GPU puede componer el plátano con el fondo sin que entre en juego la CPU.

Supongamos que el plátano es un objeto de visualización 2D que no tiene definida su propiedad cacheAsBitmapMatrix . Cada vez que el objeto de visualización gira (o se escala), la función de diagnóstico de procesamiento muestra el color rojo. Esto indica que la aplicación debe cargar una nueva versión del objeto de visualización al GPU: