SlideShare una empresa de Scribd logo
1 de 26
Optimización de Contenido
    Flash para Móviles
         @edgarparada
Agenda

• Introducción a la Optimización
• Uso de Memoria
• Minimizar gasto de CPU
• Mejorar velocidad de Rendering
• ¿Preguntas?
Optimización



La optimización de nuestros contenidos Flash
es un factor muy importante para lograr una
reproducción más consistente, mejora la responsividad
(usabilidad*), tendremos más poder del CPU
disponible, etc.
Optimización



La optimización de nuestros contenidos Flash
es un factor muy importante para lograr una
reproducción más consistente, mejora la responsividad
(usabilidad*), tendremos más poder del CPU
disponible, etc.
¿Cómo funciona FP?


El runtime opera en un ciclo con ciertas instrucciones que
ocurren en cada “frame”. Un frame es un simple bloque de
tiempo determinado por los FPS.
Cada frame tiene 2 fases, divididas en 3 partes: eventos,
enterFrame y rendering.
Ejecución de Código
•   Fase 1 - Eventos y enterFrame

    Los eventos de FP llegan y se
    notifican, el evento enterFrame
    siempre se ejecuta una vez por
    frame.                           ”Elastic Racetrack”

•   Fase 2 - Rendering
                                         50%    50%
    FP calcula el estado de todos
    los elementos visuales y los
    dibuja (renderea) en pantalla.     Fase 1         Fase 2
Benchmarking
• Siempre que hacemos optimización es
  muy importante poder medir los
  resultados. Existen 2 tipo de benchmarking:
 • Cuantitativo (medible) - Depende de
    ciertas herramientas
 • Cualitativo (persepción) - Depende del
    contexto
Benchmarking Cuantitativo
Medir Tiempo Transcurrido

El tiempo transucrrido puede llegar a medirse
con una función sencilla:
tiempo = getTimer();
// todo lo que vamos a medir
tiempoTranscurrido = getTimer() - tiempo;
PerformanceTest.as
Es una librería creada por Grant Skinner (http://
gskinner.com/libraries/) para probar desde funciones
en una línea de tiempo hasta generar todo una serie
de pruebas de desempeño durante el desarrollo.
//Prueba de una función
perfTest.testFuncion(function, iterations);
Medir Frame Rate
Performance Monitor
https://github.com/mrdoob/Hi-ReS-Stats
Es una clase que provee información para monitorear el desempeño
de nuestro código ActionScript.
 •   FPS Cuantos cuadros fueron renderizados en 1 segundo.
 •   MS Milisegundos que se necesitaron para renderizar un cuadro.
 •   MEM Memoria usada por el código, si aumenta esta MAL.
 •   MAX Cantidad Máxima de memoria alcanzada por la
     aplicación.
Flash Builder Profiler



Es una vista que nos permite analizar “en vivo” la
aplicación. Existe la posibilidad de tomar snapshots
de memoria y monitorear funciones del GC.
Benchmarking Cualitativo
UX influencia
nuestra tolerancia
  Desempeño
  Hay diferentes factores que
pueden afectar la persepción de
 los usuarios: acciones, alertas,
  distractores, precargas, etc.
Frame Rate
Un framerate más alto implica realizar más
operaciones por segundo o menos tiempo para
realizar dichas operaciones según quiera verse ;-)
Es un valor dinámico dentro de Flash...
• Flash IDE - Properties / FPS
• ActionScript 3 - [SWF(frameRate=“24”)]
• Flex - <s:Application frameRate="24">
Uso de Memoria
Tratar de conservar la memoria de nuestras
aplicaciones siempre es importante durante el
desarrollo, en el caso de los móviles debe
considerarse una prioridad.
Existen diversas técnicas que se verán afectadas
por el uso de Display objects, reutilización de objetos,
optimización de bitmaps, manejo adecuado de filtros,
etc.
Display Objects
  trace(getSize(new Shape()));
         // output: 236
 trace(getSize(new Sprite()));
         // output: 416
trace(getSize(new MovieClip()));
         // output: 452
Reutilización de Objetos
const MAX_NUM:int = 18;               const MAX_NUM:int = 18;

const COLOR:uint = 0xCCCCCC;          const COLOR:uint = 0xCCCCCC;

var area:Rectangle;                   // Crear objeto fuera del ciclo
for (var i:int = 0; i < MAX_NUM; i+   var area:Rectangle = new
+)                                    Rectangle(0,0,1,10);
{                                     for (var i:int = 0; i < MAX_NUM; i++)
    // No hacer esto                  {
    area = new Rectangle(i,0,1,10);   area.x = i;

myBitmapData.fillRect(area,COLOR);    myBitmapData.fillRect(area,COLOR);
}                                     }
Uso de Bitmaps
  Downsalmpling (auto) &
BitmapData single reference
Filtros
Hay que tratar de evitar el uso
 de filtros debido a que crean
dos bitmaps en memoria, en su
 defecto usar efectos creados
  con herramientas externas.
Minimizar gasto de CPU
Sin lugar a dudas un área importante dentro de la
optimización es el uso de CPU de nuestras
aplicaciones.
Optimizar el uso del procesamiento del CPU mejora
el rendimiento y como resultado la vida de la batería
en dispositivos móviles.
Tener cuidado que elementos como audio, video,
webcam y otras opciones hacen uso intensivo del
procesador.
Freezing & Unfreezing
Freezing & Unfreezing Loader
var loader:Loader = new Loader();   var loader:Loader = new Loader();
loader.load ( new URLRequest        loader.load ( new URLRequest
( "content.swf" ) );                ( "content.swf" ) );
addChild ( loader );                addChild ( loader );
stage.addEventListener              stage.addEventListener
( MouseEvent.CLICK, unloadSWF );    ( MouseEvent.CLICK, unloadSWF );
function unloadSWF                  function unloadSWF
( e:MouseEvent ):void               ( e:MouseEvent ):void
{                                   {
    loader.unload();                     loader.unloadAndStop();
}                                   }
Timers vs ENTER_FRAME




Vamos a preferir Timers vs ENTER_FRAME para
contenido no animado que se ejecuta por un largo
tiempo.
Mejorar el Rendering
Estos son algunos tips para mejorar la fase de
Rendering dentro de nuestras aplicaciones Flash:
   •   Reducir cantidad de curvas en los vectores.
   •   Evitar el uso de máscaras.
   •   Limpiar contornos
   •   Usar anti-alias para animación
   •   Convertir arte complejo en bitmaps o en su
       defecto usar cacheAsBitmap()
¿Preguntas?
Optimización de Contenido
    Flash para Móviles
         @edgarparada

Más contenido relacionado

Similar a Optimización de Contenido Flash para Móviles

Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
Herramientas Y Programas Utiles
Herramientas Y Programas UtilesHerramientas Y Programas Utiles
Herramientas Y Programas UtilesJairo Gatjens
 
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata Alejandro Zapata
 
Construyendo modelos para dispositivos edge tpu dev fest galicia
Construyendo modelos para dispositivos edge tpu   dev fest galiciaConstruyendo modelos para dispositivos edge tpu   dev fest galicia
Construyendo modelos para dispositivos edge tpu dev fest galiciaMoisés Martínez
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraAnder Martinez
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)Ander Martinez
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Rodolfo Finochietti
 
The wpo academy_clinic_seo
The wpo academy_clinic_seoThe wpo academy_clinic_seo
The wpo academy_clinic_seoDigital Growth
 
Actividad no18 2do_parcial
Actividad no18 2do_parcialActividad no18 2do_parcial
Actividad no18 2do_parcialCarlos Mendoza
 
PPT SESION 11.pdf
PPT SESION 11.pdfPPT SESION 11.pdf
PPT SESION 11.pdfNinaLagos1
 

Similar a Optimización de Contenido Flash para Móviles (20)

Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Estimación temprana de proyectos software #pmot #pmlat @iprocuratio
Estimación temprana de proyectos software #pmot #pmlat @iprocuratioEstimación temprana de proyectos software #pmot #pmlat @iprocuratio
Estimación temprana de proyectos software #pmot #pmlat @iprocuratio
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad
 
Herramientas Y Programas Utiles
Herramientas Y Programas UtilesHerramientas Y Programas Utiles
Herramientas Y Programas Utiles
 
Programas de simulacion
Programas de simulacionProgramas de simulacion
Programas de simulacion
 
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata
Trabajo Practico : Instituto superior de profesorado nº 3- Alejandro Zapata
 
Construyendo modelos para dispositivos edge tpu dev fest galicia
Construyendo modelos para dispositivos edge tpu   dev fest galiciaConstruyendo modelos para dispositivos edge tpu   dev fest galicia
Construyendo modelos para dispositivos edge tpu dev fest galicia
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. Hora
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
 
Bootcamp Javascript Online
Bootcamp Javascript OnlineBootcamp Javascript Online
Bootcamp Javascript Online
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
Proyecto de Grado
Proyecto de GradoProyecto de Grado
Proyecto de Grado
 
The wpo academy_clinic_seo
The wpo academy_clinic_seoThe wpo academy_clinic_seo
The wpo academy_clinic_seo
 
Simuladores
SimuladoresSimuladores
Simuladores
 
Actividad no18 2do_parcial
Actividad no18 2do_parcialActividad no18 2do_parcial
Actividad no18 2do_parcial
 
PPT SESION 11.pdf
PPT SESION 11.pdfPPT SESION 11.pdf
PPT SESION 11.pdf
 
CvTrafficCounter
CvTrafficCounterCvTrafficCounter
CvTrafficCounter
 

Más de Edgar Parada

Ciberseguridad, Fundamental para la Transformación Digital
Ciberseguridad, Fundamental para la Transformación DigitalCiberseguridad, Fundamental para la Transformación Digital
Ciberseguridad, Fundamental para la Transformación DigitalEdgar Parada
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEdgar Parada
 
Presentación Adobe AIR para PlayBook - Reto BlackBerry
Presentación Adobe AIR para PlayBook - Reto BlackBerryPresentación Adobe AIR para PlayBook - Reto BlackBerry
Presentación Adobe AIR para PlayBook - Reto BlackBerryEdgar Parada
 
Tips para Mejorar tu Estrategia Online
Tips para Mejorar tu Estrategia OnlineTips para Mejorar tu Estrategia Online
Tips para Mejorar tu Estrategia OnlineEdgar Parada
 
Contenido web en múltiples pantallas
Contenido web en múltiples pantallasContenido web en múltiples pantallas
Contenido web en múltiples pantallasEdgar Parada
 
Desarrollo para iPhone con Flash
Desarrollo para iPhone con FlashDesarrollo para iPhone con Flash
Desarrollo para iPhone con FlashEdgar Parada
 
CSS con Dreamweaver CS5
CSS con Dreamweaver CS5CSS con Dreamweaver CS5
CSS con Dreamweaver CS5Edgar Parada
 
Google Analytics con Flash
Google Analytics con FlashGoogle Analytics con Flash
Google Analytics con FlashEdgar Parada
 
Flash Catalyst en Campus Party
Flash Catalyst en Campus PartyFlash Catalyst en Campus Party
Flash Catalyst en Campus PartyEdgar Parada
 
Flex en Cafe de Altura
Flex en Cafe de AlturaFlex en Cafe de Altura
Flex en Cafe de AlturaEdgar Parada
 
SG09 Ux Flash Catalyst
SG09 Ux Flash CatalystSG09 Ux Flash Catalyst
SG09 Ux Flash CatalystEdgar Parada
 

Más de Edgar Parada (14)

Ciberseguridad, Fundamental para la Transformación Digital
Ciberseguridad, Fundamental para la Transformación DigitalCiberseguridad, Fundamental para la Transformación Digital
Ciberseguridad, Fundamental para la Transformación Digital
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 min
 
Presentación Adobe AIR para PlayBook - Reto BlackBerry
Presentación Adobe AIR para PlayBook - Reto BlackBerryPresentación Adobe AIR para PlayBook - Reto BlackBerry
Presentación Adobe AIR para PlayBook - Reto BlackBerry
 
Tips para Mejorar tu Estrategia Online
Tips para Mejorar tu Estrategia OnlineTips para Mejorar tu Estrategia Online
Tips para Mejorar tu Estrategia Online
 
Contenido web en múltiples pantallas
Contenido web en múltiples pantallasContenido web en múltiples pantallas
Contenido web en múltiples pantallas
 
Desarrollo para iPhone con Flash
Desarrollo para iPhone con FlashDesarrollo para iPhone con Flash
Desarrollo para iPhone con Flash
 
CSS con Dreamweaver CS5
CSS con Dreamweaver CS5CSS con Dreamweaver CS5
CSS con Dreamweaver CS5
 
Google Analytics con Flash
Google Analytics con FlashGoogle Analytics con Flash
Google Analytics con Flash
 
Flash y Seo
Flash y SeoFlash y Seo
Flash y Seo
 
Flash Catalyst en Campus Party
Flash Catalyst en Campus PartyFlash Catalyst en Campus Party
Flash Catalyst en Campus Party
 
Usabilidad
UsabilidadUsabilidad
Usabilidad
 
Flex 101
Flex 101Flex 101
Flex 101
 
Flex en Cafe de Altura
Flex en Cafe de AlturaFlex en Cafe de Altura
Flex en Cafe de Altura
 
SG09 Ux Flash Catalyst
SG09 Ux Flash CatalystSG09 Ux Flash Catalyst
SG09 Ux Flash Catalyst
 

Último

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

Optimización de Contenido Flash para Móviles

  • 1. Optimización de Contenido Flash para Móviles @edgarparada
  • 2. Agenda • Introducción a la Optimización • Uso de Memoria • Minimizar gasto de CPU • Mejorar velocidad de Rendering • ¿Preguntas?
  • 3. Optimización La optimización de nuestros contenidos Flash es un factor muy importante para lograr una reproducción más consistente, mejora la responsividad (usabilidad*), tendremos más poder del CPU disponible, etc.
  • 4. Optimización La optimización de nuestros contenidos Flash es un factor muy importante para lograr una reproducción más consistente, mejora la responsividad (usabilidad*), tendremos más poder del CPU disponible, etc.
  • 5. ¿Cómo funciona FP? El runtime opera en un ciclo con ciertas instrucciones que ocurren en cada “frame”. Un frame es un simple bloque de tiempo determinado por los FPS. Cada frame tiene 2 fases, divididas en 3 partes: eventos, enterFrame y rendering.
  • 6. Ejecución de Código • Fase 1 - Eventos y enterFrame Los eventos de FP llegan y se notifican, el evento enterFrame siempre se ejecuta una vez por frame. ”Elastic Racetrack” • Fase 2 - Rendering 50% 50% FP calcula el estado de todos los elementos visuales y los dibuja (renderea) en pantalla. Fase 1 Fase 2
  • 7. Benchmarking • Siempre que hacemos optimización es muy importante poder medir los resultados. Existen 2 tipo de benchmarking: • Cuantitativo (medible) - Depende de ciertas herramientas • Cualitativo (persepción) - Depende del contexto
  • 9. Medir Tiempo Transcurrido El tiempo transucrrido puede llegar a medirse con una función sencilla: tiempo = getTimer(); // todo lo que vamos a medir tiempoTranscurrido = getTimer() - tiempo;
  • 10. PerformanceTest.as Es una librería creada por Grant Skinner (http:// gskinner.com/libraries/) para probar desde funciones en una línea de tiempo hasta generar todo una serie de pruebas de desempeño durante el desarrollo. //Prueba de una función perfTest.testFuncion(function, iterations);
  • 11. Medir Frame Rate Performance Monitor https://github.com/mrdoob/Hi-ReS-Stats Es una clase que provee información para monitorear el desempeño de nuestro código ActionScript. • FPS Cuantos cuadros fueron renderizados en 1 segundo. • MS Milisegundos que se necesitaron para renderizar un cuadro. • MEM Memoria usada por el código, si aumenta esta MAL. • MAX Cantidad Máxima de memoria alcanzada por la aplicación.
  • 12. Flash Builder Profiler Es una vista que nos permite analizar “en vivo” la aplicación. Existe la posibilidad de tomar snapshots de memoria y monitorear funciones del GC.
  • 14. UX influencia nuestra tolerancia Desempeño Hay diferentes factores que pueden afectar la persepción de los usuarios: acciones, alertas, distractores, precargas, etc.
  • 15. Frame Rate Un framerate más alto implica realizar más operaciones por segundo o menos tiempo para realizar dichas operaciones según quiera verse ;-) Es un valor dinámico dentro de Flash... • Flash IDE - Properties / FPS • ActionScript 3 - [SWF(frameRate=“24”)] • Flex - <s:Application frameRate="24">
  • 16. Uso de Memoria Tratar de conservar la memoria de nuestras aplicaciones siempre es importante durante el desarrollo, en el caso de los móviles debe considerarse una prioridad. Existen diversas técnicas que se verán afectadas por el uso de Display objects, reutilización de objetos, optimización de bitmaps, manejo adecuado de filtros, etc.
  • 17. Display Objects trace(getSize(new Shape())); // output: 236 trace(getSize(new Sprite())); // output: 416 trace(getSize(new MovieClip())); // output: 452
  • 18. Reutilización de Objetos const MAX_NUM:int = 18; const MAX_NUM:int = 18; const COLOR:uint = 0xCCCCCC; const COLOR:uint = 0xCCCCCC; var area:Rectangle; // Crear objeto fuera del ciclo for (var i:int = 0; i < MAX_NUM; i+ var area:Rectangle = new +) Rectangle(0,0,1,10); { for (var i:int = 0; i < MAX_NUM; i++) // No hacer esto { area = new Rectangle(i,0,1,10); area.x = i; myBitmapData.fillRect(area,COLOR); myBitmapData.fillRect(area,COLOR); } }
  • 19. Uso de Bitmaps Downsalmpling (auto) & BitmapData single reference
  • 20. Filtros Hay que tratar de evitar el uso de filtros debido a que crean dos bitmaps en memoria, en su defecto usar efectos creados con herramientas externas.
  • 21. Minimizar gasto de CPU Sin lugar a dudas un área importante dentro de la optimización es el uso de CPU de nuestras aplicaciones. Optimizar el uso del procesamiento del CPU mejora el rendimiento y como resultado la vida de la batería en dispositivos móviles. Tener cuidado que elementos como audio, video, webcam y otras opciones hacen uso intensivo del procesador.
  • 23. Freezing & Unfreezing Loader var loader:Loader = new Loader(); var loader:Loader = new Loader(); loader.load ( new URLRequest loader.load ( new URLRequest ( "content.swf" ) ); ( "content.swf" ) ); addChild ( loader ); addChild ( loader ); stage.addEventListener stage.addEventListener ( MouseEvent.CLICK, unloadSWF ); ( MouseEvent.CLICK, unloadSWF ); function unloadSWF function unloadSWF ( e:MouseEvent ):void ( e:MouseEvent ):void { { loader.unload(); loader.unloadAndStop(); } }
  • 24. Timers vs ENTER_FRAME Vamos a preferir Timers vs ENTER_FRAME para contenido no animado que se ejecuta por un largo tiempo.
  • 25. Mejorar el Rendering Estos son algunos tips para mejorar la fase de Rendering dentro de nuestras aplicaciones Flash: • Reducir cantidad de curvas en los vectores. • Evitar el uso de máscaras. • Limpiar contornos • Usar anti-alias para animación • Convertir arte complejo en bitmaps o en su defecto usar cacheAsBitmap()
  • 26. ¿Preguntas? Optimización de Contenido Flash para Móviles @edgarparada

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n