Flash Player Internals
Upcoming SlideShare
Loading in...5
×
 

Flash Player Internals

on

  • 1,440 views

Flash Player Internals

Flash Player Internals

Statistics

Views

Total Views
1,440
Views on SlideShare
1,435
Embed Views
5

Actions

Likes
2
Downloads
29
Comments
1

1 Embed 5

http://www.slideshare.net 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Flash Player Internals Flash Player Internals Presentation Transcript

    • Flash Player Internals
      Alberto González
      Sr. Technical Consultant
    • 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,…
    • 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.
    • 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
    • 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 );
      }
    • Infraestructura
      Flash Player
    • Modelo de ejecución (Flash) : Basado en “frames”
    • 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++;

      }
    • Modelo de ejecución
      // Siempre hay unaexcepción.
      start = getTimer();
      bitmapData.draw(…);
      end = getTimer();
    • Modelo de ejecución (Flash) : Basado en “frames”
    • Modelo de ejecución (Flex) : Basado en eventos
    • Prioridades de performance en Flash Player
      Sonido streaming
      Video
      ActionScript + Rendering
    • Versiones
      Versión del Flash Player vs versión del SWF
      La “versión” es virtual
      Aplica a:
      Funcionalidades
      APIs
      Bugfixes
    • ActionScript
    • 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
    • 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
    • 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 )
    • Rendering…
    • GPU vs Software Rendering
      “Rendereo” por software:
      “Rendereo” por GPU
      +
    • 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
    • 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
    • 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
    • Q & A
      Alberto González
      E-mail:
      agonzalez@activ.com.mx
      Twitter:
      @albertx
      Blog:
      http://x-geom.net/blog