En el mundo de la tecnología, las nuevas terminologías y abreviaturas no son nada nuevo y, a veces, con cada nueva versión del software existente, es posible que se presente un nuevo término que todos parecen usar y comprender. Sin embargo, el problema para los principiantes e incluso para muchos usuarios ocasionales es que no entienden completamente lo que significa la nueva connotación, ni pueden averiguarlo fácilmente por sí mismos a partir de fuentes oficiales, principalmente debido al hecho de que los desarrolladores no son ‘ Estoy muy interesado en explicar muchas de esas terminologías y sus detalles técnicos. En el mejor de los casos, se le indicará un enlace oficial que proporciona una explicación, pero en términos tan técnicos que es prácticamente inútil para alguien que no sea experto en tecnología.

En AddictiveTips siempre nos hemos enorgullecido de simplificar los conceptos técnicos y proporcionar respuestas en términos que sean agradables para el usuario ocasional y el principiante en tecnología. Por lo tanto, cuando Google decidió presentar ART con Android 4.4 KitKat, lo vimos como una oportunidad para presentarles a nuestros lectores el nuevo entorno de ejecución y ayudar a todos a comprender de qué se trata todo esto y en qué se diferencia de la máquina virtual Dalvik que ART se está construyendo para reemplazar.

¿Qué es un entorno de ejecución?

Antes de llegar a responder la pregunta real, debemos comprender qué es realmente un entorno de ejecución. Para decirlo en términos más simples, el tiempo de ejecución se compone de instrucciones de software que se ejecutan cuando su programa se está ejecutando, incluso si no son esencialmente parte del código de esa pieza de software en particular. Estas instrucciones básicamente traducen el propio código del software en el código que la computadora es capaz de ejecutar. Por lo tanto, todos los lenguajes informáticos requieren algún tipo de entorno de ejecución que pueda ejecutar correctamente el código escrito en ese lenguaje.

Android hace uso de una máquina virtual como su entorno de ejecución para ejecutar los archivos APK que constituyen una aplicación de Android. La ventaja de usar una máquina virtual es doble: en primer lugar, el código de la aplicación está aislado del sistema operativo principal, lo que garantiza que, en caso de que algo salga mal, esté contenido en un entorno aislado y no afecte al sistema operativo principal. Y en segundo lugar, permite la compatibilidad cruzada, lo que significa que incluso si una aplicación se compila en otra plataforma (como una PC, como suele ser el caso con el desarrollo de aplicaciones móviles), aún se pueden ejecutar en la plataforma móvil utilizando la máquina virtual. .

Para Android, el entorno de ejecución basado en máquinas virtuales que se utiliza hasta ahora se conoce como la Máquina Virtual Dalvik, con la que, estoy seguro, cualquiera que haya profundizado en los detalles del sistema operativo, está más que familiarizado.

¿Por qué utilizar una máquina virtual?

Ese es en realidad el punto que tocamos justo arriba. Las máquinas virtuales son lentas, no se puede negar eso, pero en realidad tienen un par de ventajas que las convierten en una opción favorita.

  • Las máquinas virtuales proporcionan un entorno aislado para la ejecución de código. Por lo tanto, incluso si una aplicación contiene un código malicioso que puede dañar el sistema operativo principal, no afectará directamente los archivos del sistema y, por lo tanto, se evitará que el sistema operativo principal se corrompa. El beneficio a gran escala es una mayor estabilidad y confiabilidad para el sistema operativo.
  • Los APK de la aplicación que se proporcionan a través de Play Store (o cualquier otra fuente, para el caso) son instrucciones no compiladas que los desarrolladores confían en la máquina virtual para compilar antes de la ejecución y ejecutar en el dispositivo. Esto proporciona más compatibilidad; Si el desarrollador proporcionara un código ya compilado y se compiló para un procesador basado en Snapdragon, es posible que no se ejecute correctamente en un chip Tegra, por ejemplo. Por lo tanto, esta compilación en el dispositivo aborda este problema.

Entonces, ¿qué es Dalvik y qué tiene de malo?

Esa es la pregunta que debemos hacernos, ¿no es así? Dalvik ha estado allí desde que Android comenzó en 2007, y no ha cambiado mucho desde entonces, aparte del enfoque de compilación Just-In-Time (JIT) introducido en Android 2.2 Froyo, que básicamente compila aplicaciones justo cuando están lanzado, o cuando el usuario proporciona las instrucciones necesarias. Es útil, así como una mejora con respecto al enfoque de intérprete convencional anterior que compilaba y ejecutaba el código línea por línea a medida que se ejecutaba, pero la desventaja es una gran sobrecarga cuando la aplicación se inicia por primera vez.

Esto se debe a que el sistema necesita reunir todos los archivos necesarios, compilar la aplicación y cargarla en la RAM. Mientras la aplicación compilada permanezca dentro de la RAM, seguirá respondiendo rápidamente, pero cuando carga más aplicaciones y la RAM se agota, la primera se descarga y, por lo tanto, en el lanzamiento posterior, todo el proceso comienza de nuevo. El enfoque tiene sentido en el papel y, de hecho, ha funcionado bien hasta ahora para la plataforma. Sin embargo, los dispositivos más antiguos con RAM limitada son los que más sufren, porque el ciclo de carga / descarga continúa con más frecuencia y, por lo tanto, el sistema se siente lento en términos de capacidad de respuesta general. Ahí es donde entra en juego la nueva máquina virtual, ART.

¿Qué es ART y cómo mejora las cosas?

ART, o Android RunTime (un nombre bastante poco convincente, sí, lo sabemos) es una nueva máquina virtual experimental que Google ha introducido con Android 4.4 KitKat como una opción de desarrollador (con Dalvik todavía siendo el configurado como predeterminado por ahora). La principal diferencia entre ART y Dalvik es el enfoque de compilación que utilizan ambos: ART emplea un nuevo concepto Ahead-Of-Time (AOT) contrario al JIT de Dalvik, que básicamente compila aplicaciones incluso antes de que se lancen. Lo que esto significa es que las instalaciones por primera vez tomarán más tiempo y las aplicaciones ocuparán más espacio en el almacenamiento interno, pero al mismo tiempo, dado que la aplicación se compilará completamente tan pronto como se instale, los tiempos de lanzamiento serán mucho más rápidos. Del mismo modo, dado que la parte de compilación se realiza solo una vez en el momento de la instalación, la carga del procesador es menor, lo que se traduce en una mejor duración de la batería y un mejor rendimiento general.

Dalvik vs. ART – Comparación

Hagamos una comparación rápida de ambas máquinas virtuales antes de seguir adelante.

Dalvik

ARTE

Utiliza un enfoque Just-In-Time (JIT), que da como resultado un menor consumo de espacio de almacenamiento pero tiempos de carga de aplicaciones más prolongados Utiliza el enfoque Ahead-Of-Time (AOT), que compila las aplicaciones cuando están instaladas, lo que resulta en tiempos de carga más rápidos y menor uso del procesador
La caché se acumula con el tiempo, por lo que los tiempos de arranque son más rápidos La caché se crea en el primer arranque, por lo que reiniciar el dispositivo lleva mucho más tiempo
Funciona mejor para dispositivos de almacenamiento interno más bajos, ya que el espacio ocupado es menor Consume mucho más espacio de almacenamiento interno ya que almacena aplicaciones compiladas además de los APK
Es estable y probada en el tiempo: la máquina virtual elegida por los desarrolladores de aplicaciones Es muy experimental y nuevo; todavía no hay mucho apoyo de los desarrolladores de aplicaciones.

Dices que el ARTE es experimental …

Sí, y en este momento, está disponible solo en dispositivos con conjuntos de chips Snapdragon y con Android 4.4 KitKat. Tiene la opción de cambiar de Dalvik a ART desde las opciones ocultas de desarrollador, si lo desea, pero tenga en cuenta que algunas de sus aplicaciones podrían no funcionar correctamente. Además, si ya hay una caché de aplicaciones construida en Dalvik, el primer reinicio después de hacer el cambio puede demorar hasta media hora.

Google ha hecho que ART esté disponible principalmente con KitKat para que los desarrolladores jueguen con él y establezcan las bases para un cambio permanente en el futuro. Y esto de ninguna manera implica que ART esté listo para usarse hoy. Lo será en el futuro, pero por ahora, es experimental y no es apto para el uso diario por parte del usuario final.

En cuanto a los beneficios del TAR, hay informes mixtos. Para la mayoría de los revisores, los dispositivos de prueba se componen de procesadores de cuatro núcleos con más de 2 gigas de RAM, que es una configuración más que adecuada para observar verdaderamente las ganancias de velocidad de ART. Aún así, los usuarios aleatorios informan ganancias de más del 50% en velocidad y más del 30% en la duración de la batería. Otros afirman que no es más que un efecto placebo.

Para ser justos, no se puede decir nada antes de que esté disponible para las masas y pierda la etiqueta experimental. Por lo tanto, guardaremos ese debate para más adelante. Lo que se puede decir a estas alturas con certeza es que el TAR es el futuro. Google irá con la compilación anticipada para que coincida realmente con iOS, su contraparte más grande, y ART va a allanar el camino. No importa cuán tonto pueda parecer el nombre o cuán incompleto esté en este momento, seguiremos viendo ART cada vez más.