Android Runtime

Android Runtime (ART) è un ambiente di runtime delle applicazioni utilizzato dal sistema operativo Android. Sostituendo Dalvik, la macchina virtuale di processo originariamente utilizzata da Android, ART esegue la traduzione del bytecode dell’applicazione in istruzioni native che vengono successivamente eseguite dall’ambiente di runtime del dispositivo.

Android Runtime

Sviluppatore(s)

Google

Repository

Android.googlesource.com/piattaforma/arte/

Scritto in

C, C++

sistema Operativo

Android (sistema operativo)

Sito web

source.android.com/devices/tech/dalvik/art.html Modifica presente su Wikidata

Un confronto tra Dalvik e ART architetture

Android 2.2 “Froyo” ha portato la compilazione just-in-time (JIT) basata su traccia in Dalvik, ottimizzando l’esecuzione delle applicazioni profilando continuamente le applicazioni ogni volta che vengono eseguite e compilando dinamicamente brevi segmenti del loro bytecode eseguiti frequentemente in codice macchina nativo. Mentre Dalvik interpreta il resto del bytecode dell’applicazione, l’esecuzione nativa di quei segmenti di bytecode brevi, chiamati “tracce”, fornisce miglioramenti significativi delle prestazioni.

A differenza di Dalvik, ART introduce l’uso della compilazione AOT (Ahead-of-time) compilando intere applicazioni in codice macchina nativo al momento della loro installazione. Eliminando l’interpretazione di Dalvik e la compilazione JIT basata su tracce, ART migliora l’efficienza di esecuzione complessiva e riduce il consumo energetico, il che si traduce in una migliore autonomia della batteria sui dispositivi mobili. Allo stesso tempo, ART offre un’esecuzione più rapida delle applicazioni, meccanismi di allocazione della memoria e garbage collection (GC) migliorati, nuove funzionalità di debug delle applicazioni e una profilazione di alto livello più accurata delle applicazioni.

Per mantenere la compatibilità con le versioni precedenti, ART utilizza lo stesso bytecode di input di Dalvik, fornito tramite standard .file dex come parte dei file APK, mentre il .i file odex vengono sostituiti con eseguibili e Linkable Format (ELF) eseguibili. Una volta che un’applicazione viene compilata utilizzando l’utilità dex2oat sul dispositivo di ART, viene eseguita esclusivamente dall’eseguibile ELF compilato; di conseguenza, ART elimina i vari costi generali di esecuzione delle applicazioni associati all’interpretazione di Dalvik e alla compilazione JIT basata su tracce. Come lato negativo, ART richiede tempo aggiuntivo per la compilazione quando viene installata un’applicazione e le applicazioni occupano quantità leggermente maggiori di memoria secondaria (che di solito è memoria flash) per memorizzare il codice compilato.

Android 4.4 “KitKat” ha portato un’anteprima tecnologica dell’ARTE, includendola come ambiente di runtime alternativo e mantenendo Dalvik come macchina virtuale predefinita. Nella successiva versione principale di Android, Android 5.0 “Lollipop”, Dalvik è stato interamente sostituito dall’ART.

Android 7.0 “Nougat” ha cambiato il suo Java Runtime Environment in OpenJDK, introducendo un compilatore JIT con profilazione del codice in ART, che consente di migliorare costantemente le prestazioni delle app Android durante l’esecuzione. Il compilatore JIT integra l’attuale compilatore in anticipo di ART e aiuta a migliorare le prestazioni di runtime e a risparmiare spazio di archiviazione compilando solo alcune parti delle app.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.