Android Runtime i Dalvik: Srce Android Runtimea

Zadnje ažuriranje: 11 studenog, 2026
  • Dalvik je radio koristeći JIT kompilaciju, prevodeći kod dok je aplikacija radila.
  • ART optimizira sustav korištenjem AOT kompilacije, izvršavajući proces tijekom instalacije.
  • Oba okruženja koriste DEX format datoteke, što osigurava kompatibilnost između verzija.
  • Prijelaz na ART omogućio je smanjenu potrošnju baterije i poboljšanu fluidnost sustava.

Krupni plan makro prikaza komponenti elektroničkog kruga, koji predstavlja hardver na kojem se pokreće Android Runtime.

Ako ste se ikada pitali što se zapravo događa "ispod haube" vašeg telefona kada otvorite aplikaciju, odgovor leži u okruženju za izvođenje. U Android ekosustavu prešli smo s arhitekture temeljene na virtualnom stroju Dalvik na mnogo robusniji sustav nazvan Android Runtime, poznatiji kao ART. U osnovi, ART je odgovoran za prevođenje koda koji programeri pišu u upute koje hardver vašeg uređaja može razumjeti bez rušenja.

Da biste to razumjeli, važno je znati da Android ne pokreće Javu izvorno; umjesto toga koristi prilagođenu adaptaciju . Sve počinje s izvornim kodom, koji se pretvara u bajtkod i završava u određenom formatu koji se zove DEX. Ovisno o tome je li vaša verzija Androida starija ili novija, put kojim se ovaj kod izvršava drastično se mijenja, utječući na svakodnevne stvari poput trajanja baterije i brzine učitavanja aplikacija.

Nasljeđe Dalvika: Era "just-in-time"

Zaslon pametnog telefona prikazuje retke programskog koda, ilustrirajući pretvorbu bajtkoda u izvršne instrukcije.

Dalvik je bio temeljni stup od samog početka Androida. Njegov cilj je bio jasan: omogućiti aplikacijama napisanim u Javi pokretanje na uređajima s vrlo ograničenim resursima . Za razliku od standardnog Java virtualnog stroja, Dalvik je bio optimiziran za korištenje manje memorije i istovremeno pokretanje više instanci, delegirajući upravljanje nitima Linux kernelu.

  Kako ukloniti zlonamjerni softver u sustavu Windows i zaštititi svoje računalo

Dalvikova ključna značajka bila je Just-In-Time (JIT) kompilacija . To je značilo da se kod prevodio u strojni jezik točno kada je korisnik komunicirao s aplikacijom. Kako bi se izbjeglo ponavljanje ovog zamornog zadatka svaki put, Dalvik je stvorio datoteke pod nazivom ODEX (Optimizirani DEX) , koje su pohranjivale već prevedene dijelove u predmemoriju. Problem je bio u tome što je ovaj stalni proces kompilacije trošio CPU cikluse i stoga koristio više energije.

Android Runtime (ART): Skok prema prednostima

Pametni telefon na tipkovnici prikazuje razinu baterije, uspoređujući energetsku učinkovitost ART-a i Dalvika.

Počevši od Androida 5.0 Lollipop, ART je potpuno preuzeo kontrolu. Velika razlika je u tome što ART implementira kompilaciju unaprijed (AOT) . Umjesto da čeka da otvorite aplikaciju, ART obavlja teški posao tijekom instalacije. Koristi alat pod nazivom dex2oat za pretvaranje DEX datoteka u ELF (Executable and Linkable Format) izvršne datoteke, koje su izvorne za Linux.

Zahvaljujući ovom pristupu, kada dodirnete ikonu aplikacije, sustav ne mora ništa kompajlirati; jednostavno čita ELF datoteku i izvršava je. To znači da procesor radi manje, baterija traje dulje , a aplikacije rade puno glatkije. Međutim, postoji mali kompromis: instalacija aplikacija traje malo dulje i zauzimaju više prostora za pohranu nego s Dalvikom.

Tehnička usporedba i ključna poboljšanja

Iako su oba okruženja kompatibilna i pokreću isti DEX bajtkod, ART je uveo poboljšanja koja sustav čine nevjerojatno brzim. Jedno od najznačajnijih je sakupljanje smeća (GC) . U Dalviku je sakupljač smeća prije uzrokovao one dosadne pauze ili "zastajkivanja" u sučelju (zloglasno kašnjenje). ART je ovo redizajnirao s primarno konkurentnim sustavom , čineći pauze neovisnima o količini korištene memorije.

  • Napredno otklanjanje pogrešaka: ART omogućuje programerima da vide koje brave drže niti i prate instance klase s puno većom točnošću.
  • Točne dijagnoze: Sada, kada se aplikacija sruši, izvješća o pogreškama su puno detaljnija, posebno u slučajevima NullPointerException.
  • Upravljanje memorijom: Za razliku od Dalvika, koji je koristio predmemoriju koja se ne može podijeljivati ​​u stranice, ART koristi RAM memoriju koja paginacija je moguća, optimizirajući korištenje hardvera.
  Nadležnost VPN-a: Sve što trebate znati kako biste zaštitili svoju privatnost

Proces pakiranja: Od koda do APK-a

Razvojno okruženje s prijenosnim računalom i pametnim telefonom, koje predstavlja proces pakiranja izvornog koda do APK datoteke.

Da bi bilo koje od ovih okruženja radilo, kod mora proći kroz proizvodnu liniju. Prvo, Java kompajler stvara .class datoteke, koje dex alat zatim pretvara u jednu classes.dex datoteku. Ova datoteka je jezgra APK-a i ono što će ART ili Dalvik obraditi.

Alati poput aapt-a koriste se za pakiranje resursa, a zipalign optimizira poravnanje podataka, osiguravajući da procesor pristupa memoriji što je moguće učinkovitije. Nakon što APK stigne do uređaja, događa se magija: ako postoji ART, generira se ELF datoteka ; ako postoji Dalvik, ODEX datoteka počinje se generirati u hodu.

Zanimljive činjenice o ROM-ovima i procesu dekodeksiranja

U svijetu prilagođenih ROM-ova, često se koriste pojmovi odex i deodex . Budući da je ODEX datoteka ovisna o hardveru i ovisi o točnom sustavu na kojem je stvorena, ne može se lako prenijeti s jednog telefona na drugi. Kako bi modificirali aplikaciju bez rušenja sustava, programeri provode proces deodexinga , koji uključuje integraciju optimizirane datoteke unutar APK-a kako bi se olakšala njezina manipulacija.

Android ekosustav evoluirao je od fleksibilnog, ali energetski intenzivnog virtualnog stroja do optimiziranog okruženja za izvođenje koje daje prioritet korisničkom iskustvu. Dok se Dalvik usredotočio na svestranost prevođenja koda u stvarnom vremenu, ART je maksimizirao iskorištenost hardvera putem predkompilacije , osiguravajući da je softver stabilniji, brži i energetski učinkovitiji.