jueves, 10 de julio de 2014

Android Art

A lo largo de la historia rápida y tumultuosa de Android, que ahora tiene cinco años, casi todos los aspectos del sistema operativo se ha modificado, actualizado o revisado de alguna manera. Todo, es decir, a excepción de la parte más importante: Dalvik, la máquina virtual que se ejecuta casi todas las aplicaciones de Android, se ha mantenido prácticamente igual desde el primer día - y Dalvik es lento.



Ahora, con Android 4.4, Google ha puesto de manifiesto que un reemplazo Dalvik es en las obras - un reemplazo, llamado Android Runtime (ART), que debería mejorar el rendimiento de las apps Android por un amplio margen. La primera versión de la TAR en Android 4.4 ya se acelera aplicaciones en torno al 100%, y la versión final debería ser aún mejor.
Trucos Clash of clans
Al ejecutar el software en un ordenador, tal como un PC o un teléfono inteligente, usted es casi siempre la ejecución de código compilado. El código compilado es el código fuente que se ha compilado, por el promotor, en el código que la computadora pueda entender (código máquina). Si abre un archivo EXE, ve el código compilado - galimatías código de máquina que la CPU puede ejecutar. Windows, el navegador web, Crysis 3, Linux, aplicaciones de iOS - estos son todos ejemplos de código compilado.
Emulador 3ds
Crysis 3 - Por defecto FOV
Juegos AAA de gran presupuesto como Crysis casi siempre se compilan, por razones de rendimiento.
El otro tipo de código se interpreta código. Esto puede venir en muchas variedades, pero lo principal es que interpreta el código no puede ser ejecutado directamente por la CPU - primero debe ser compilado por el intérprete en código máquina, usando un proceso llamado compilación Just-In-Time (JIT). El ejemplo más común de código interpretado es JavaScript que su explorador Web interpreta /, se compilan cada vez que visita un sitio web que utiliza JavaScript. Código interpretado es útil por dos razones principales: Usted puede hacer cambios sin tener que recompilar toda la cosa, y porque es independiente de la plataforma. (Puede ejecutar JavaScript felizmente en cualquier plataforma que tenga un navegador web moderno - no se puede ejecutar un EXE de Windows en OS X de Apple)

El otro buen ejemplo de código interpretado es Java - y Dalvik es esencialmente la versión de Google de Java. Java es deseable debido a que un desarrollador puede escribir un programa una vez, y luego tener que ejecutarse en cualquier plataforma de hardware que tiene un intérprete de trabajo (Java Virtual Machine). Por la misma razón, ya que Android fue diseñado para funcionar con una amplia gama de plataformas, las especificaciones de hardware, y factores de forma, Google decidió utilizar la máquina virtual Dalvik para aplicaciones de Android. De esta manera un programador puede escribir una sola aplicación Dalvik y estar seguro de que funcionará en los teléfonos inteligentes, tablets, televisores, dispositivos integrados, y así sucesivamente.

OdinMonkey / Asm.js benchmarks
Este gráfico muestra el rendimiento de JavaScript interpretado (rojo / azul) contra la misma función compilado a código nativo (naranja)
El problema con el código interpretado, sin embargo, es que es más lento - como, muy lento. En el caso de JavaScript, que es alrededor de 20 veces más lento que el mismo código que se ha compilado de forma nativa con C o C + +. Java / Dalvik no es tan lento, pero aún así es bastante más lento que el código nativo compilado. En muchos casos, especialmente con los procesadores modernos, esta diferencia de velocidad no salta a la vista, pero todo suma. Es imposible echar la culpa exclusivamente de Dalvik para la capacidad de respuesta más lenta de Android o mayor consumo de energía, pero sin duda es un factor significativo. Es una ecuación simple: código interpretado tarda más en ejecutarse y consume más tiempo de CPU, lo que reduce la vida de la batería y capacidad de respuesta global.

Tiempo de ejecución de Android - ART

Android 4.4, seleccione Dalvik o aplicación ART runtimeGoogle sabe todo esto sobre Dalvik, por supuesto, por lo que ha estado trabajando en su reemplazo - Duración Android (ART) - durante más de dos años. Una primera versión de ART se incluye con Android 4.4 y se puede habilitar en Configuración> Opciones> Seleccionar Developer Runtime.

ART caballo entre una interesante mediados de tierra entre el código compilado e interpretado, llamado antes-de-tiempo (AOT) la compilación. Actualmente con aplicaciones de Android, que se interpretan en tiempo de ejecución (utilizando el JIT), cada vez que los abre. Esto es lento. (aplicaciones de iOS, en comparación, se compilan en código nativo, que es mucho más rápido.) Con ART activado, cada aplicación Android se compila a código nativo cuando lo instale. Luego, cuando llega el momento de ejecutar la aplicación, se realiza con toda la presteza de una aplicación nativa.

Obviamente, toma algún tiempo para llevar a cabo la compilación AOT durante la instalación, pero los beneficios a largo plazo de las aplicaciones que se cargan y se ejecutan más rápido será fácilmente compensarlo. Es probable que ni siquiera se dará cuenta de la compilación AOT de pequeñas aplicaciones; pero para aplicaciones más grandes, estamos hablando de un retraso notable. Si cambia de un dispositivo existente de Dalvik a ART, estás hablando de un tiempo de espera de unos pocos minutos, mientras que Android realiza AOT para todas sus aplicaciones instaladas.

La principal ventaja de ART es que permite a los desarrolladores de Android para continuar escribiendo el mismo código, y que sus aplicaciones funcionan en una amplia gama de especificaciones de hardware y factores de forma - pero ahora sus aplicaciones será ahora ejecutar mucho más rápido, se sienten más sensibles, y duración de la batería de su dispositivo debería mejorar. Las primeras pruebas indican que el arte es el doble de rápido que Dalvik. Código compilado del ART debe realizar también más consistente que JIT Dalvik, también, reducir la latencia de interfaz de usuario y la tartamudez. Las mayores ganancias probablemente serán para aplicaciones computacionalmente intensivas, tales como editores de fotografía y vídeo, pero si esta acumulación temprana de ART es cualquier cosa ir cerca, no debe haber mejoras significativas en todos los ámbitos. ART podría ser el cambio que finalmente se hace a Android como sentimiento sensible y ágil como iOS.
Clash of clans hack
No hay línea de tiempo para la presentación oficial de ART, pero teniendo en cuenta que Google ha estado trabajando en él durante un par de años, y que la aplicación en Android 4.4 se siente bastante maduro, probablemente no está tan lejos. Probablemente será una característica titular en Android 4.5 - o más probablemente, dada la magnitud del cambio, Android 5.0.