La razón de por qué la interfaz de Android es lenta

Genial explicación de Andrew Munn, estudiante de tercero de carrera de Computer Engineering, que ha trabajado en una beca del Android Team (quedándose a dormir varios días incluso) y trabajará ahora en otra beca de Windows Phone. Lo destaco, porque aquí en España la experiencia en empresas durante la carrera es nula.

En una frase, en Android la interfaz no tiene prioridad en la ejecución; al contrario que en iPhone o Windows Phone. Android es un sistema operativo pre-iPhone, iba a competir contra las Blackberries, no iba a tener pantallas multitáctiles y por tanto no necesitaba de mucha potencia gráfica. Cuando salió el iPhone, cambiaron el hardware pero la herencia de cómo funcionaba las hebras siguió ahí.

En un iPhone la interfaz tiene prioridad. Si por ejemplo abres una página en Safari, y cuando se está cargando mueves la pantalla, la web deja de cargar ya que la interfaz tiene prioridad. En Android en cambio sigue cargando.

Andrew dice que Android debería estar reescribiendo todo ese código si quiere seguir la meta de velocidad que siempre busca Google, pero que obligará a rehacer todas las apps y soportar legacy code. No creo que sea tan extrema la realidad, pero algo tienen que hacer, no es sostenible meter siempre mejores procesadores para llegar a la rapidez de iPhone. ¿Quizás para Android 5 en Julio 2012?

Actualización: Ricardo Galli ha escrito un muy buen post sobre el tema (muy muy técnico, avisados quedáis)