La verdad sobre la aceleración de hardware en Android

Aceleración de hardware de Android

Cuando se compara la plataforma Android relativamente abierta con un sistema estrictamente controlado como iOS, una de las primeras diferencias que la gente nota es la fluidez superior de las aplicaciones en iOS. Esto es algo que tiene Android luchar con desde sus inicios, pero muchas de las suposiciones sobre el sistema gráfico de Android y su relación con la fluidez de la interfaz son incorrectas. La ingeniera de Google, Dianne Hackborn, explicó los entresijos de la aceleración del hardware de Android en una reciente Publicación de Google+, y puede que no sea la solución mágica que todos esperaban.

Al contrario de lo que siempre hemos escuchado, Android ha tenido algunos aceleración de hardware para dibujar elementos de interfaz de usuario 2D desde antes de 1.0. Muchas de las animaciones que vemos todos los días en Android han sido aceleradas por hardware todo el tiempo. Por ejemplo, los menús que aparecen, los cuadros de diálogo, el deslizamiento hacia abajo de la barra de notificaciones y la transición entre actividades se dibujan utilizando la GPU.

Toda la 'composición de ventanas' se realiza mediante renderizado de hardware basado en GPU. Podemos pensar en esto como dibujar elementos nuevos en la pantalla. Cuando se presiona el botón de menú, la GPU maneja la superposición resultante. Si esa superposición cambia, como si se resalta o presiona un botón, ese cambio se representa en el software, y la mayoría de los teléfonos son más que capaces de presionar esos píxeles. Cuando se cambia toda la ventana, esa es una tarea de GPU.



Entonces, ¿qué está cambiando en Sándwich de helado (ICS)? Según Hackborn, lo que veremos en Android 4.0 es una aceleración de hardware 'completa'. Todos los elementos de la interfaz de usuario en Windows y las aplicaciones de terceros tendrán acceso a la GPU para renderizar. Android 3.0 tenía el mismo sistema, pero ahora los desarrolladores podrán apuntar específicamente Android 4.0 con aceleración de hardware. Google anima a los desarrolladores a actualizar las aplicaciones para que sean totalmente compatibles con este sistema añadiendo la etiqueta de aceleración de hardware en el manifiesto de la aplicación.

Es probable que esto lleve tiempo, ya que los desarrolladores certifican sus aplicaciones en ICS, pero Google ha incluido un cambio en la configuración de Android para forzar el procesamiento del hardware. Hackborn advierte que en aplicaciones no probadas, esto tiene el potencial de romper cosas de manera sutil o fundamental. Este es solo el primer problema posible con la aceleración de hardware en Android.

Sandwich de helado de AndroidAl representar todas las animaciones y la interfaz de usuario de una aplicación con la GPU, el sistema afecta el uso de la memoria. La carga de los controladores OpenGL para cada proceso requiere un uso de memoria de aproximadamente 2 MB y lo aumenta a 8 MB. En dispositivos con RAM limitada, esto puede ser un problema real. Cuando se consume más RAM, el sistema necesariamente tendrá que cerrar más tareas en segundo plano para ahorrar memoria. Como resultado, es posible que algunos desarrolladores no quieran usar la GPU para dibujar.

El objetivo del procesamiento de hardware para la interfaz es lograr un funcionamiento más fluido, pero si no se maneja de manera adecuada, los dispositivos Android pueden funcionar peor. Usando el ejemplo de Tegra 2, que puede renderizar todos los píxeles en una pantalla de 1280 × 800 2.5 veces por segundo a 60FPS, el problema es claro. La GPU toca cada píxel una vez para el fondo, una vez para los íconos y widgets, una vez más para las etiquetas, y luego hay animaciones con las que lidiar. No hay forma de llegar a 60FPS haciendo las cosas de esa manera.

Android hace que la aceleración de hardware funcione con una serie de trucos, y los desarrolladores deben tomar nota. Primero, las ventanas separadas en la interfaz se copian en superposiciones unificadas para un acceso a la GPU más eficiente. Android también representa el fondo como un mapa de bits grande que no necesita ser renderizado nuevamente mientras el usuario se desplaza.

Los desarrolladores deberán tener cuidado con la forma en que se maneja la aceleración de hardware. Simplemente dibujar todo con la GPU podría resultar en un rendimiento deficiente en los teléfonos existentes. Para el futuro, cuanto mayor sea la resolución en un dispositivo, más relacionada estará la velocidad de la GPU con la suavidad general y la proximidad a ese umbral de 60FPS. El factor limitante para la velocidad de un dispositivo a menudo será el ancho de banda del bus de memoria de la GPU en el futuro.

Copyright © Todos Los Derechos Reservados | 2007es.com