El Androide Libre: todo Android

El Androide Libre

En:

La inmensa mayoría de aplicaciones en Android están escritas en el lenguaje de programación Java. Esta necesita de una máquina virtual para funcionar que durante las últimas versiones había sido Dalvik, y que en KitKat ha empezado a sustituirse por ART, una versión mucho mejor.

A raíz de este cambio los chicos de Learn OpenGL han decidido crear diversas apps para probar la velocidad de los distintos idiomas de programación y hasta qué punto aprovechan la velocidad de la CPU para ofrecer un mejor rendimiento.

Comparación de rendimiento entre ART, Dalvik y C en un Nexus 5

No entraremos en detalles técnicos, pero el autor crea un filtro DSP para generar código con mkfilter. Este se implementa de tres formas; uno en C, otra en Java y otra en Java con algunas optimizaciones manuales para aprovechar donde este idioma puede ser mejor. Unas optimizaciones que la mayoría de apps no introducen.

Los resultados se muestran en la siguiente tabla y han sido realizados sobre un Nexus5.

art-dalvik-c

Como vemos, la diferencia entre C y Java (ART y Dalvik) es enorme. Hasta casi 18 veces más lento Java en Dalvik que con apps en C.

También podemos ver como se ha mejorado mucho ART respecto a Dalvik, aunque esta diferencia sería menor si los programadores aprovechasen todas las virtudes de Java, y es que en los resultados optimizados manualmente, no se percibe tanta diferencia entre Dalvik y ART. Esta diferencia de esfuerzo no solo es cuestión de microsegundos, sino de energía utilizada por las CPUs, lo que al final se traduce en batería para nuestros dispositivos.

Unos resultados que demuestran lo increíblemente rápido que es C, el gran trabajo a pesar de ser una beta todavía que se ha hecho con ART y como de lenta es la ya algo antigua Dalvik.

Java, no tan mala elección

El autor, no contento con esto continúa su pequeño experimento y prueba el mismo código pero en un PC con un procesador Intel Core i7 a 2,6GHz, mucho más potente que el Snapdragon800 del Nexus5, pero, y aquí está lo interesante, solo se consiguen resultados 2 o 3 veces más rápido en Java, a pesar de que la CPU sea considerablemente muchísimo más rápida. Parece ser que Java no está tan mal implementado en Android.

Android_Java_

¿Cómo sería Android escrito en C? Muchísimo más rápido, con interfaces que se abren al instante y un rendimiento muchísimo mayor. ¿Por qué no entonces se apuesta por ese idioma? La razón es práctica, al ser un lenguaje de programación de bajo nivel la dificultad para crear apps en C es enorme, crear una simple app de un botón o una pantalla con un mensaje sería un verdadero quebradero de cabeza, ya no digamos apps más complejas.

Y es que al final no todo es velocidad, también el sentido práctico. Aún así una bonita comparativa que queríamos compartir con vosotros y que pone en contexto el porqué de Java como lenguaje preferido de Android.

Más información Learn OpenGL

Manual para hacer compatible la Gear Fit con más dispositivos además de Galaxy y Samsung
Así es el rediseño que tendrá Google+ próximamente
Vídeos El Androide Libre
La aplicación de contactos de Google por fin muestra bien las fotos
Android 8 llegará a los Samsung Galaxy S8 en breve en forma de beta
Un nuevo Nokia 8 con más RAM y más memoria se confirma
Google compra a HTC parte de su división de móviles: comienza una nueva era
Moto X4 con Android One
Meizu M6, características y precio
Descarga el explorador de archivos de Xiaomi para cualquier Android
Google Play Music se actualiza para evitar consumos extra
WhatsApp no cederá al Reino Unido la información de sus usuarios
Nueva Amazfit Midong Band: pantalla a color y 12 días de uso
Android 8 da problemas en el Nexus 6P pero ya hay una solución
Google Maps se actualiza mejorando su uso con la multiventana
Android 8.0 llega al OnePlus 3T en una versión filtrada de Hydrogen OS
Esta es la mejor página para descargar los firmwares originales de los móviles Android
Football Strike: sencillo y adictivo juego de fútbol para Android