flash player internals
DESCRIPTION
Flash Player InternalsTRANSCRIPT
White Master
Replace witha graphic
5.5” Tall & 4.3” Wide
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 1
Flash Player Internals
Alberto GonzálezSr. Technical Consultant
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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,…
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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.
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 4
Flash Player en laptops, desktop, dispositivos
Consistente
Multi-plataforma
Optimizado
Existen diferencias mayores
Memoria y CPU (Quad Core, Palm, Core 2 Duo, …)
Resolución (1600x1280, 320x260, …)
Mouse, teclado, touchscreen
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 5
Flash Player
Hay que ser cuidadoso// Fallará el flash player en un móvil con 100MB de RAM
for( int i=0; i<10; ++i ) {
data[i] = new BitmapData( 1600, 1600 );
}
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 6
Infraestructura
Flash Player
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 7
Modelo de ejecución (Flash) : Basado en “frames”
( Browser )
Acciones SWF
ActionScript
Rendering
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 8
Modelo de ejecución
// Este código no hace lo que esperaríamos
// El “Render” no es invocado
for( var i:int; i < 100; i++){
clip.x++;
…
}
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 9
Modelo de ejecución
// Siempre hay una excepción.
start = getTimer();
bitmapData.draw(…);
end = getTimer();
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 10
Modelo de ejecución (Flash) : Basado en “frames”
[Evento] enterFrame
Constructores
[Evento] frameConstructed
Scripts del frame
[Evento] exitFrame
Rendereo del Frame
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 11
Modelo de ejecución (Flex) : Basado en eventos
Evento(Browser)
(null)
ActionScript
Rendering
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 12
Prioridades de performance en Flash Player
Sonido streaming
Video
ActionScript + Rendering
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 13
Versiones
Versión del Flash Player vs versión del SWF
La “versión” es virtual
Aplica a: Funcionalidades
APIs
Bug fixes
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 14
ActionScript
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 16
Garbage Collector (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
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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 )
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 18
Rendering…
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 19
GPU vs Software Rendering
“Rendereo” por software:
“Rendereo” por GPU
+
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 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
®
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 22
Performance
ActionScript Utilizar ActionScript 3
Tener cuidado con los intervalos y los altos “frame rates”
DisplayList (móviles) Mantenerla lo más pequeña posible
Video Resoluciones, formatos y “frame rate” apropiados
White Master
Replace witha graphic
5.5” Tall & 4.3” Wide
Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 23
Q & A
Alberto González
E-mail:[email protected]
Twitter:@albertx
Blog:http://x-geom.net/blog