Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cómo mejorar el rendimiento de nuestras apps

Cómo mejorar el rendimiento de nuestras apps

Introducción y tips para mejorar el performance de las aplicaciones android.

Vinicius Da Silva

December 09, 2017
Tweet

More Decks by Vinicius Da Silva

Other Decks in Programming

Transcript

  1. Cómo funciona ¿Como nuestra activity se dibuja en la pantalla?

    ¿Como todos esos xml’s locos se convierten en pixeles que los usuarios pueden ver y entender?
  2. Rasterization Este es el proceso de tomar un objeto de

    alto nivel como ser un botón, un path o un shape y convertirlo en pixeles en una textura o en la pantalla.
  3. Este proceso de rasterización realmente consume mucho, pero mucho tiempo

    de proceso y como tal hay una pieza de hardware especial en tu dispositivo móvil que está diseñado específicamente para que este se ejecute de una manera mucho más rápida.
  4. Lo que pasa entonces es que cada vez que los

    objetos de la interfaz (views como los buttons, paths, etc) necesitan ser dibujados en la pantalla primero son convertidos en poligonos y texturas en la CPU y luego son enviados a la GPU para el proceso de rasterización.
  5. Regla principal Obtener la mayor cantidad de datos sobre la

    GPU tan rápido como sea posible y luego dejarlos allí sin modificarlos todo el tiempo que sea posible ya que cada vez que se actualiza un recurso en el GPU se pierde valioso tiempo de procesamiento.
  6. El sistema Android hace un montón de trabajo para reducir,

    reusar y reciclar recursos del GPU por nosotros, por lo cual en verdad no debemos preocuparnos al respecto, por ejemplo todos los recursos proporcionados por nuestro tema, bitmaps, drawables, etc. Son agrupados juntos en una sola textura y cargados al GPU
  7. Optimizar la jerarquía de los layouts Cada widget y layout

    que se agrega al app requiere inicialización, diseño y dibujo. Problemas se podrían presentar por ejemplo en: Views anidadas como ser el Linear Layout. Soluciones: • Revisar el Hierarchi Viewer • Utilizar Lint