De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Una comparación de las arquitecturas de Dalvik y ART

Android Runtime ( ART ) es un entorno de ejecución de aplicaciones que utiliza el sistema operativo Android . Reemplazando a Dalvik , la máquina virtual de proceso utilizada originalmente por Android, ART realiza la traducción del código de bytes de la aplicación en instrucciones nativas que luego son ejecutadas por el entorno de ejecución del dispositivo. [1]

Android 2.2 "Froyo" incorporó la compilación Just -In-Time (JIT) basada en trazas en Dalvik, optimizando la ejecución de las aplicaciones mediante el perfilado continuo de las aplicaciones cada vez que se ejecutan y compilando dinámicamente segmentos cortos ejecutados con frecuencia de su código de bytes en código de máquina nativo . Mientras Dalvik interpreta el resto del código de bytes de la aplicación, la ejecución nativa de esos segmentos cortos de código de bytes, denominados "trazas", proporciona importantes mejoras de rendimiento. [2] [3]

A diferencia de Dalvik, ART introduce el uso de compilación anticipada (AOT) compilando aplicaciones completas en código de máquina nativo tras su instalación. Al eliminar la interpretación de Dalvik y la compilación JIT basada en trazas, ART mejora la eficiencia de ejecución general y reduce el consumo de energía, lo que se traduce en una mayor autonomía de la batería en los dispositivos móviles . Al mismo tiempo, ART ofrece una ejecución más rápida de aplicaciones, mecanismos mejorados de asignación de memoria y recolección de basura (GC), nuevas funciones de depuración de aplicaciones y perfiles de aplicaciones de alto nivel más precisos. [1] [4] [5]

Para mantener la compatibilidad con versiones anteriores , ART utiliza el mismo código de bytes de entrada que Dalvik, proporcionado a través de archivos .dex estándar como parte de los archivos APK , mientras que los archivos .odex se reemplazan con ejecutables de formato ejecutable y enlazable (ELF). Una vez que se compila una aplicación utilizando la utilidad dex2oat en el dispositivo de ART , se ejecuta únicamente desde el ejecutable ELF compilado; como resultado, ART elimina varios gastos generales de ejecución de aplicaciones asociados con la interpretación de Dalvik y la compilación JIT basada en trazas. Como desventaja, ART requiere tiempo adicional para la compilación cuando se instala una aplicación, y las aplicaciones ocupan cantidades ligeramente mayores de almacenamiento secundario.(que suele ser una memoria flash ) para almacenar el código compilado. [1] [4] [5]

Android 4.4 "KitKat" trajo una vista previa de la tecnología ART, incluyéndolo como un entorno de ejecución alternativo y manteniendo a Dalvik como la máquina virtual predeterminada. [6] [7] En la posterior versión principal de Android, Android 5.0 "Lollipop" , Dalvik fue reemplazado por completo por ART.

Android 7.0 "Nougat" cambió su Java Runtime Environment a OpenJDK , presentando un compilador JIT con perfil de código para ART, que le permite mejorar constantemente el rendimiento de las aplicaciones de Android mientras se ejecutan. [8] El compilador JIT complementa el compilador actual Ahead of Time de ART y ayuda a mejorar el rendimiento en tiempo de ejecución y a ahorrar espacio de almacenamiento compilando solo algunas partes de las aplicaciones. [7] [9]

Ver también [ editar ]

  • Desarrollo de software de Android  : varios conceptos y utilidades de desarrollo de software que se utilizan para la creación de aplicaciones de Android
  • Historial de versiones de Android  : un historial y descripciones de las versiones de Android, enumeradas principalmente por sus niveles oficiales de API
  • Comparación de software de virtualización de aplicaciones  : varias máquinas virtuales portátiles y de lenguaje de secuencias de comandos
  • Máquina virtual  : una emulación de un sistema informático en particular, con diferentes grados de funcionalidad implementada.

Referencias [ editar ]

  1. ↑ a b c Andrei Frumusanu (1 de julio de 2014). "Una mirada más cercana a Android RunTime (ART) en Android L" . AnandTech . Consultado el 5 de julio de 2014 .
  2. ^ Ben Cheng; Bill Buzbee (mayo de 2010). "Un compilador JIT para Dalvik VM de Android" (PDF) . android-app-developer.co.uk . Google . págs. 5-14. Archivado desde el original (PDF) el 6 de noviembre de 2015 . Consultado el 18 de marzo de 2015 .
  3. ^ Phil Nickinson (26 de mayo de 2010). "El desarrollador de Google Android explica más sobre Dalvik y el JIT en Froyo" . androidcentral.com . Consultado el 8 de julio de 2014 .
  4. ^ a b "Desarrolladores de Android: ART y Dalvik" . source.android.com . 9 de marzo de 2015 . Consultado el 18 de marzo de 2015 .
  5. ^ a b "Desarrolladores de Android: Configuración de ART - Cómo funciona ART" . source.android.com . 9 de marzo de 2015 . Consultado el 18 de marzo de 2015 .
  6. ^ Sean Buckley (6 de noviembre de 2013). " El experimento ' ART' en Android KitKat mejora la duración de la batería y acelera las aplicaciones" . Engadget . Consultado el 5 de julio de 2014 .
  7. ^ a b Daniel P. (7 de noviembre de 2013). "El tiempo de ejecución experimental de Google ART en Android KitKat puede generar ejecuciones de aplicaciones dos veces más rápidas" . phonearena.com . Archivado desde el original el 7 de julio de 2014 . Consultado el 5 de julio de 2014 .
  8. ^ "Android 7.0 para desarrolladores" . Desarrolladores de Android . Consultado el 22 de marzo de 2021 .
  9. ^ "Implementación del compilador ART Just-In-Time (JIT)" . source.android.com . 22 de enero de 2017 . Consultado el 22 de enero de 2017 .

Enlaces externos [ editar ]

  • Página web oficial
  • Android Basics 101: Understanding ART, the Android Runtime on YouTube , XDA Developers , 12 de febrero de 2014
  • ART: Android's Runtime Evolved en YouTube, Google I / O 2014, por Anwar Ghuloum, Brian Carlstrom e Ian Rogers
  • Un compilador JIT para la VM Dalvik de Android en YouTube, Google I / O 2010, por Ben Cheng y Bill Buzbee
  • Entregando Android Runtime (ART) y Web Runtime en la arquitectura Intel altamente optimizado , Intel 4 de agosto de 2015, por Haitao Feng Ding y Jonathan
  • Android 7.1 para desarrolladores: compilación JIT / AOT guiada por perfiles , desarrolladores de Android, describe los cambios de ART en Android 7.1