Android Runtime

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Android Runtime (ART) es un entorno de ejecución de aplicaciones utilizado por el sistema operativo Android. Reemplazando a Dalvik, la máquina virtual de procesos utilizada originalmente por Android, ART realiza la traducción del código de bytes de la aplicación en instrucciones nativas que luego ejecuta el entorno de tiempo de ejecución del dispositivo.

Visión general

Android 2.2 "Froyo" incorporó la compilación justo a tiempo (JIT) basada en trazas a Dalvik, optimizando la ejecución de las aplicaciones mediante el perfilado continuo de las aplicaciones cada vez que se ejecutan y la compilación dinámica de segmentos cortos ejecutados con frecuencia de su código de bytes en código de máquina nativo. Si bien 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, llamados "rastros", proporciona mejoras significativas en el rendimiento.

A diferencia de Dalvik, ART introduce el uso de compilación anticipada (AOT) al compilar aplicaciones completas en código de máquina nativo al momento de 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 da como resultado una mayor autonomía de la batería en los dispositivos móviles. Al mismo tiempo, ART brinda una ejecución más rápida de las 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.

Para mantener la compatibilidad con versiones anteriores, ART usa 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 vinculable (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 seguimiento. Una desventaja de ART es que se requiere tiempo adicional para la compilación cuando se instala una aplicación, y las aplicaciones ocupan un poco más de almacenamiento secundario (generalmente memoria flash) para almacenar el código compilado.

Android 4.4 "KitKat" trajo una vista previa de la tecnología de ART, incluyéndolo como un entorno de tiempo de ejecución alternativo y manteniendo a Dalvik como la máquina virtual predeterminada. En el siguiente lanzamiento importante de Android, Android 5.0 "Lollipop", Dalvik fue reemplazado por completo por ART.

Android 7.0 "Nougat" cambió su Java Runtime Environment del descontinuado Apache Harmony a OpenJDK, presentando un compilador JIT con creación de perfiles de código para ART, lo que le permite mejorar constantemente el rendimiento de las aplicaciones de Android mientras se ejecutan. El compilador JIT complementa el compilador adelantado actual de ART y ayuda a mejorar el rendimiento del tiempo de ejecución y ahorra espacio de almacenamiento al compilar solo algunas partes de las aplicaciones.

Android 9 "Pie" redujo la cantidad de almacenamiento utilizado por los APK mediante el uso de archivos de código de bytes comprimidos, y los datos del generador de perfiles se pueden cargar en los servidores de Google Play para combinarlos con aplicaciones cuando los descargan usuarios con un dispositivo similar.

Android 13 ART se actualizará con un nuevo recolector de basura (GC) utilizando la llamada al sistema userfaultfd de Linux. Reduce la presión de la memoria, el tamaño del código compilado, el bloqueo y evita el riesgo de matar aplicaciones debido a la poca memoria durante la GC. Otros cambios también mejoran el inicio de la aplicación, reducen los bloqueos y mejoran el rendimiento. Debido al proyecto Mainline, Android 12 ART también se actualizará.

Contenido relacionado

Familia de arquitectura ARM

Estructura e Interpretación de Programas de Computador

Microcódigo

En el diseño de procesadores, el microcódigo o microprograma es una técnica que interpone una capa de organización informática entre el hardware de la...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save