Android Runtime in Dalvik: Srce Android Runtime

Zadnja posodobitev: 11 november 2026
  • Dalvik je delal z uporabo JIT prevajanja, pri čemer je kodo prevajal med delovanjem aplikacije.
  • ART optimizira sistem z uporabo prevajanja AOT, ki postopek izvede med namestitvijo.
  • Obe okolji uporabljata format datoteke DEX, kar zagotavlja združljivost med različicami.
  • Prehod na ART je omogočil manjšo porabo baterije in izboljšano pretočnost sistema.

Makro pogled od blizu na komponente elektronskega vezja, ki predstavljajo strojno opremo, na kateri se izvaja Android Runtime.

Če ste se kdaj vprašali, kaj se v resnici dogaja pod pokrovom vašega telefona, ko odprete aplikacijo, se odgovor skriva v izvajalnem okolju. V ekosistemu Android smo prešli z arhitekture, ki temelji na virtualnem stroju Dalvik, na veliko bolj robusten sistem, imenovan Android Runtime, bolj znan kot ART. ART je v bistvu odgovoren za prevajanje kode, ki jo napišejo programerji, v navodila, ki jih strojna oprema vaše naprave lahko razume, ne da bi se sesula.

Da bi to razumeli, je pomembno vedeti, da Android ne izvaja Jave izvorno, temveč uporablja prilagoditev po meri . Vse se začne z izvorno kodo, ki se pretvori v bajtno kodo in konča v posebni obliki, imenovani DEX. Glede na to, ali je vaša različica Androida starejša ali novejša, se pot, ki jo ta koda ubere za izvajanje, drastično spremeni, kar vpliva na vsakdanje stvari, kot sta življenjska doba baterije in hitrost nalaganja aplikacij.

Zapuščina Dalvika: Doba ravno ob pravem času

Zaslon pametnega telefona, ki prikazuje vrstice programske kode, ki ponazarjajo pretvorbo bajtne kode v izvedljiva navodila.

Dalvik je bil temeljni steber že od samega začetka Androida. Njegov cilj je bil jasen: omogočiti aplikacijam, napisanim v Javi, delovanje na napravah z zelo omejenimi viri . Za razliko od standardnega virtualnega stroja Java je bil Dalvik optimiziran za porabo manj pomnilnika in hkratno izvajanje več primerkov, pri čemer je upravljanje niti prepustil jedru Linuxa.

  Urejanje fotografij v Snapseedu: popoln vodnik za kar najboljši izkoristek

Dalvikova ključna značilnost je bila prevajanje Just-In-Time (JIT) . To je pomenilo, da je bila koda prevedena v strojni jezik natančno takrat, ko je uporabnik interagiral z aplikacijo. Da bi se izognili vsakokratnemu ponavljanju te dolgočasne naloge, je Dalvik ustvaril datoteke, imenovane ODEX (Optimized DEX) , ki so že prevedene dele shranile v predpomnilnik. Težava je bila v tem, da je ta nenehen proces prevajanja porabljal cikle procesorja in zato več energije.

Android Runtime (ART): Skok v korak s časom

Pametni telefon na tipkovnici, ki prikazuje raven napolnjenosti baterije, pri čemer se primerja energijska učinkovitost ART v primerjavi z Dalvikom.

Z Androidom 5.0 Lollipop je ART popolnoma prevzel nadzor. Velika razlika je v tem, da ART izvaja prevajanje Ahead-Of-Time (AOT) . Namesto da čaka na odpiranje aplikacije, ART opravi težko delo med namestitvijo. Uporablja orodje dex2oat za pretvorbo datotek DEX v izvedljive datoteke ELF (Executable and Linkable Format), ki so izvorne za Linux.

Zahvaljujoč temu pristopu sistemu ob tapkanju ikone aplikacije ni treba ničesar prevajati; preprosto prebere datoteko ELF in jo izvede. To pomeni, da procesor deluje manj, baterija zdrži dlje in aplikacije delujejo veliko bolj gladko. Vendar pa obstaja majhna slabost: namestitev aplikacij traja nekoliko dlje in zavzamejo več prostora za shranjevanje kot pri Dalviku.

Tehnična primerjava in ključne izboljšave

Čeprav sta obe okolji združljivi in ​​poganjata isto bajtno kodo DEX, je ART uvedel izboljšave, zaradi katerih je sistem neverjetno hiter. Ena najpomembnejših je zbiranje smeti (GC) . V Dalviku je zbiralnik smeti povzročal nadležne premore ali "zatikanje" v vmesniku (zloglasni zamik). ART je to preoblikoval s pretežno sočasnim sistemom , zaradi česar so premori neodvisni od količine porabljenega pomnilnika.

  • Napredno odpravljanje napak: ART razvijalcem omogoča, da vidijo, katere zaklepe držijo niti, in sledijo primerkom razredov z veliko večjo natančnostjo.
  • Natančne diagnoze: Zdaj so poročila o napakah, ko se aplikacija sesuje, veliko podrobnejša, zlasti v primerih NullPointerException.
  • Upravljanje pomnilnika: Za razliko od Dalvika, ki je uporabljal predpomnilnik, ki ga ni mogoče ostraniti, ART uporablja RAM pomnilnik, ki oštevilčenje strani je možno, optimizacija uporabe strojne opreme.
  Wi-Fi 7: Kako ga uporabiti za izboljšanje domače povezave

Postopek pakiranja: od kode do APK-ja

Razvojno okolje s prenosnikom in pametnim telefonom, ki predstavlja postopek pakiranja izvorne kode v datoteko APK.

Da bi katero koli od teh okolij delovalo, mora koda iti skozi montažni trak. Najprej prevajalnik Java ustvari datoteke .class, ki jih orodje dex nato pretvori v eno samo datoteko classes.dex. Ta datoteka je jedro APK-ja in jo bosta obdelala ART ali Dalvik.

Orodja, kot je aapt, se uporabljajo za pakiranje virov, zipalign pa optimizira poravnavo podatkov in tako zagotavlja, da procesor čim bolj učinkovito dostopa do pomnilnika. Ko APK doseže napravo, se zgodi čarovnija: če obstaja ART, se ustvari datoteka ELF ; če obstaja Dalvik, se datoteka ODEX začne ustvarjati sproti.

Zanimiva dejstva o ROM-ih in procesu dekoderiranja

V svetu prilagojenih ROM-ov pogosto slišimo izraza odex in deodex . Ker je datoteka ODEX odvisna od strojne opreme in sistema, v katerem je bila ustvarjena, je ni mogoče enostavno premakniti iz enega telefona v drugega. Za spreminjanje aplikacije brez sesutja sistema razvijalci izvedejo postopek deodexinga , ki vključuje integracijo optimizirane datoteke v APK, da se olajša njena manipulacija.

Androidov ekosistem se je razvil iz prilagodljivega, a energetsko potratnega virtualnega stroja v optimizirano izvajalno okolje, ki daje prednost uporabniški izkušnji. Medtem ko se je Dalvik osredotočil na vsestranskost prevajanja kode v realnem času, je ART s predkompilacijo povečal izkoriščenost strojne opreme , s čimer je zagotovil, da je programska oprema stabilnejša, hitrejša in energetsko učinkovitejša.