Google se compromete a avanzar en la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Android Runtime (ART) y Dalvik

Android Runtime (ART) es el tiempo de ejecución gestionado utilizada por las aplicaciones y algunos servicios del sistema en Android. ARTE y su predecesor Dalvik fueron originalmente creados específicamente para el proyecto Android. ART como el tiempo de ejecución ejecuta el formato Dalvik ejecutable y especificación bytecode Dex.

ARTE y Dalvik son compatibles tiempos de ejecución se ejecutan Dex código de bytes, por lo que aplicaciones desarrolladas para Dalvik debería funcionar cuando se ejecuta con ART. Sin embargo, algunas técnicas que el trabajo en Dalvik no funcionan en ART. Para obtener información acerca de las cuestiones más importantes, ver el comportamiento aplicación Verificación en el tiempo de ejecución de Android (ART) .

características del arte

Estas son algunas de las principales características implementadas por el art.

Por delante de tiempo (AOT) compilación

ART introduce por delante de tiempo (AOT) de compilación, lo que puede mejorar el rendimiento de aplicación. ART también tiene la verificación en tiempo de instalación más apretado que Dalvik.

Al momento de la instalación, recopila ART aplicaciones utilizando el dispositivo en dex2oat herramienta. Esta utilidad acepta DEX archivos como entrada y genera un ejecutable de aplicación compilado para el dispositivo de destino. La utilidad debería ser capaz de compilar todos los archivos DEX válidos sin dificultad. Sin embargo, algunas herramientas de post-procesamiento producen archivos no válidos que pueden ser tolerados por Dalvik, pero no pueden ser compilados por ART. Para obtener más información, consulte Direccionamiento Basura Problemas Collection .

mejora de la recolección de basura

La recolección de basura (GC) puede perjudicar el rendimiento de una aplicación, lo que resulta en pantalla entrecortado, la mala respuesta de la IU, y otros problemas. ARTE mejora la recolección de basura de varias maneras:

  • Una GC de pausa en lugar de dos
  • Paralelizado de procesamiento durante la pausa GC restante
  • Colector con un menor tiempo total de GC para el caso especial de la limpieza de objetos asignados recientemente, de corta duración
  • La ergonomía de recolección de basura, por lo que la mejora de las recolecciones de elementos concurrentes más oportuna, lo que hace GC_FOR_ALLOC eventos extremadamente poco frecuente de casos de uso típicos
  • La compactación de GC para reducir el uso de memoria de fondo y la fragmentación

Desarrollo y mejoras de depuración

el arte ofrece una serie de características para mejorar el desarrollo de aplicaciones y depuración.

Soporte para perfiles de muestreo

Históricamente, los desarrolladores han utilizado el Traceview herramienta (diseñado para el seguimiento de ejecución de la aplicación) como un perfilador. Mientras Traceview da información útil, sus resultados en Dalvik han sido sesgado por la sobrecarga de por método de llamada, y el uso de la herramienta afecta notablemente el rendimiento en tiempo de ejecución.

ARTE añade soporte para un generador de perfiles de muestreo dedicado que no tiene estas limitaciones. Esto da una visión más precisa de la ejecución de aplicaciones sin desaceleración significativa. apoyo de muestreo fue añadido a Traceview para Dalvik en la liberación KitKat.

Soporte para más características de depuración

ART es compatible con una serie de nuevas opciones de depuración, particularmente en la funcionalidad de seguimiento e recolección de basura relacionada. Por ejemplo, se puede:

  • Vea lo que los bloqueos se llevó a cabo en seguimientos de pila, luego salta al hilo que mantiene un bloqueo.
  • Pregunta cuántos casos existen en vivo de una clase determinada, pida ver los casos, y ver lo que las referencias están manteniendo un objeto vivo.
  • Filtrar eventos (como punto de interrupción) para una instancia específica.
  • Ver el valor devuelto por un método cuando sale (el uso de eventos “método de salida”).
  • Conjunto punto de observación de campo para suspender la ejecución de un programa cuando se accede a un campo específico y / o modificada.

detalle de diagnóstico mejorado en las excepciones y los informes de fallos

ARTE le da tanto el contexto y los detalles posibles de tiempo de ejecución cuando se producen excepciones. ART proporciona detalles excepción ampliado para java.lang.ClassCastException , java.lang.ClassNotFoundException , y java.lang.NullPointerException . (Las versiones posteriores de Dalvik proporcionado expandido detalle excepción para java.lang.ArrayIndexOutOfBoundsException y java.lang.ArrayStoreException , que ahora incluye el tamaño de la matriz y el fuera de límites offset, y ART hace esto también.)

Por ejemplo, java.lang.NullPointerException ahora muestra información acerca de lo que la aplicación estaba tratando de hacer con el puntero nulo, tales como el campo de la aplicación estaba tratando de escribir o el método que estaba tratando de llamar. Estos son algunos ejemplos típicos:

java.lang.NullPointerException: Attempt to write to field 'int
android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object
reference
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String java.lang.Object.toString()' on a null object reference

ART también proporciona información de contexto mejorado en aplicaciones nativas informes de fallos, incluyendo Java y información de pila nativa.

Informar de problemas

Si surge cualquier problema que no se deben a problemas de JNI de aplicaciones, por favor informe a través de la emisión de Android Open Source Project Rastreador . Incluir un adb bugreport y enlace a la aplicación en Google Play Store, si está disponible. De lo contrario, si es posible, adjuntar un archivo APK que reproduce el problema.