Tipus | sistema en temps d'execució |
---|---|
Característiques tècniques | |
Sistema operatiu | Android |
Plataforma | ARM, MIPS i x86 |
Escrit en | C i C++ |
Equip | |
Desenvolupador(s) | |
Més informació | |
Lloc web | source.android.com… (anglès) |
| |
Android Runtime (ART) és una aplicació del Sistema en temps d'execució utilitzat pel sistema operatiu Android. ART substitueix a Dalvik, que és el màquina virtual de processos originalment utilitzada per a Android, i porta a terme la transformació de la sol·licitud de bytecode dins del conjunt d'instruccions que després són executats per l'entorn d'execució del dispositiu.[1]
Android 2.2 "Froyo" portat just-in-time (JIT) rastrejar a força en Dalvik, l'optimització de l'execució d'aplicacions contínuament perfils d'aplicacions cada vegada que corren i de forma dinàmica amb el Compilador freqüentment executats segments curts del seu codi de bytes en Llenguatge de màquina natiu. Mentre Dalvik interpreta la resta de codi de bytes de l'aplicació, l'execució nativa d'aquests segments de codi de bytes curts, anomenats "rastres", ofereix importants millores de rendiment.[2][3]
A diferència de Dalvik, ART introdueix l'ús de compilació ahead-of-time (AOT) mitjançant la compilació d'aplicacions completes en codi màquina natiu sobre la seva instal·lació. Mitjançant l'eliminació de la interpretació de Dalvik i compilació JIT basada en ART millora l'eficiència general d'execució i redueix el consum d'energia, el que es tradueix en una millora de l'autonomia de la bateria en els telèfon intel·ligents. Alhora, ART porta una execució més ràpida de les aplicacions, la millora de la gestió de la memòria i el mecanisme de recollida d'escombraries (GC), noves millores en les aplicacions de depuració de programes, i més precisa d'aplicacions de perfils d'alt nivell.[1][4][5]
Per mantenir la compatibilitat amb versions anteriors, ART utilitza el mateix codi de bytes d'entrada com Dalvik, subministrada a través de norma d'arxius .dex com a part dels arxius APK, mentre que els arxius .odex se substitueixen amb l'executable de Format executable i enllaçable (ELF). Una vegada que es compila una aplicació mitjançant l'ús en el dispositiu d'ART amb la utilitat dex2oat, està dirigit únicament a partir de l'executable ELF compilats; com a resultat, ART elimina diverses despeses d'execució d'aplicacions associades a la interpretació de Dalvik i basada en el rastre de compilació JIT. Com a aspecte negatiu, ART requereix temps addicional per a la compilació quan s'instal·la una aplicació, i les aplicacions ocupen quantitats lleugerament més grans d'emmagatzematge secundari (que és en general memòria flaix) per emmagatzemar el codi compilat.[1][4][5]
Android 4.4 KitKat porta una tecnologia prèvia d'ART, incloent com un entorn de temps d'execució alternatiu i mantenir Dalvik com la màquina virtual predeterminada.[6][7] In the next major Android release, Android 5.0 Lollipop, Dalvik va ser substituït íntegrament per ART.[8]
Android 7.0 Nougat va introduir el compilador JIT amb perfil de codi a ART, que permet millorar constantment el rendiment de les aplicacions d'Android mentre s'executen. El compilador JIT complementa el compilador Ahead of Time d'ART i ajuda a millorar el rendiment en el temps d'execució.[9]