2. Bio Director de Tecnología en Activ (Adobe Authorized Training Center) +9 años de experiencia trabajando con la plataforma Flash, ActionScript y tecnologías de servidor. Co-manager del grupo de usuarios, oficial de Adobe, enfocado a Rich Internet Applications ( RIActive – www.riactive.com ) Consultor de Adobe Mex enfocado en tecnologías de programación Conferencista en diversos eventos internacionales como Software Guru, Adobe en vivo, Adobe Hispano, presentación de productos: CS3 – CS4, Flex y AIR, Flash Builder, Flash Catalyst,…
3. Flash Player Mismo código base para todos los dispositivos ( 80% es “core” ) Actualizamos/mejoramos el “core” y se aplica de forma automática Otra parte del código es específico de la plataforma Mobile* (Palm, Symbian, …) Desktop (Mac, Window, Linux) Mismo código, misma liberación, misma estrategia para dispositivos móviles y escritorio.
4. Flash Player en laptops, desktop, dispositivos Consistente Multi-plataforma Optimizado Existen diferencias mayores Memoria y CPU (QuadCore, Palm, Core 2 Duo, …) Resolución (1600x1280, 320x260, …) Mouse, teclado, touchscreen
5. Flash Player Hay que ser cuidadoso // Fallará el flash player en un móvil con 100MB de RAM for( inti=0; i<10; ++i ) { data[i] = new BitmapData( 1600, 1600 ); }
15. ActionScript VMs ActionScript 2 se ejecuta en AVM1 Interpretado ActionScript 3 se ejecuta en AVM2 “Tamarin VM” JIT – Convierte el ABC (ActionScript Byte Code) a “código máquina” ejecutable Nanojit, nuevo!!! Nanojit tiene soporte de la comunidad Nanojit soporta múltiples procesadores Nuevo en Flash Player 10.1 Clase “String” mejorada de manera interna GC ha sido mejorado Mobile principalmente Pocas mejoras en multi-plaforma
16. GarbageCollector (Recolector de basura) Tipos primitivos, referencias y objetos Recolección de basura no es manejo de memoria Si el manejo de memoria realmente importa en tu aplicación Comienza desde el principio Utiliza dos algoritmos: Conteo de referencias Mark and sweep Código de ayuda flash.system.System.gc(); Flash Player >= 9.0.115
17. Alchemy Podemos “inyectar” código C / C++ directo a los SWFs Soporte limitado pero útil Ideal para utilizar librerías de C / C++ en aplicaciones web (Flash Player) y escritorio (Adobe AIR) Manipulación de datos Decodificación de audio/video “Parseo” de XML u otros formatos Funciones criptográficas Simulaciones físicas No es una alternativa para evadir la seguridad en la plataforma Proyecto Alchemy( http://labs.adobe.com/technologies/alchemy )
19. GPU vs Software Rendering “Rendereo” por software: “Rendereo” por GPU +
20. Video y optimización de bitmaps Video decodificado en GPU H.264 Soportado en todos los “wmodes” JPEG descompresión bajo demanda Instancias por superficie La memoria sin utilizar es liberada
21. Vectores en GPU Dispositivos Móviles Reemplaza el render por software con render GPU Teoría: Mover lo gráfico de la computación del CPU al GPU
22. Performance ActionScript Utilizar ActionScript 3 Tener cuidado con los intervalos y los altos “framerates” DisplayList (móviles) Mantenerla lo más pequeña posible Video Resoluciones, formatos y “framerate” apropiados
23. Q & A Alberto González E-mail: agonzalez@activ.com.mx Twitter: @albertx Blog: http://x-geom.net/blog