Android Runtime a Dalvik: Srdce Android Runtime

Poslední aktualizace: 11 listopadu 2026
  • Dalvik pracoval s využitím JIT kompilace a překládal kód za běhu aplikace.
  • ART optimalizuje systém pomocí kompilace AOT, která se provádí během instalace.
  • Obě prostředí používají formát souborů DEX, což zajišťuje kompatibilitu mezi verzemi.
  • Přechod na ART umožnil snížení spotřeby baterie a zlepšení plynulosti systému.

Detailní makropohled na součástky elektronického obvodu, představující hardware, na kterém běží běhové prostředí Android.

Pokud jste se někdy zamýšleli nad tím, co se doopravdy děje „pod kapotou“ vašeho telefonu, když otevřete aplikaci, odpověď se skrývá v běhovém prostředí. V ekosystému Androidu jsme přešli od architektury založené na virtuálním stroji Dalvik k mnohem robustnějšímu systému zvanému Android Runtime, lépe známému jako ART. ART je v podstatě zodpovědný za překlad kódu, který programátoři píší, do instrukcí, kterým hardware vašeho zařízení rozumí, aniž by došlo k jeho pádu.

Abychom tomu porozuměli, je důležité vědět, že Android neběží nativně v Javě; místo toho používá vlastní adaptaci . Všechno začíná zdrojovým kódem, který je transformován do bajtkódu a končí ve specifickém formátu zvaném DEX. V závislosti na tom, zda máte starší nebo novější verzi Androidu, se cesta, kterou se tento kód spustí, drasticky mění, což ovlivňuje každodenní věci, jako je výdrž baterie a rychlost načítání aplikací.

Odkaz Dalviku: Éra Just-In-Time

Obrazovka smartphonu zobrazující řádky programovacího kódu, ilustrující převod bajtkódu na spustitelné instrukce.

Dalvik byl základním pilířem Androidu od samého začátku. Jeho cíl byl jasný: umožnit aplikacím napsaným v Javě běh na zařízeních s velmi omezenými zdroji . Na rozdíl od standardního virtuálního stroje Java byl Dalvik optimalizován pro menší využití paměti a současné spouštění více instancí, přičemž správu vláken delegoval na linuxové jádro.

  Úprava fotografií ve Snapseedu: kompletní průvodce, jak z ní vytěžit maximum

Klíčovou funkcí Dalviku byla kompilace Just-In-Time (JIT) . To znamenalo, že kód byl přeložen do strojového jazyka přesně v okamžiku, kdy uživatel interagoval s aplikací. Aby se předešlo opakování tohoto zdlouhavého úkolu pokaždé, Dalvik vytvořil soubory s názvem ODEX (Optimized DEX) , které ukládaly již přeložené části do mezipaměti. Problém byl v tom, že tento neustálý proces kompilace spotřebovával cykly CPU, a proto spotřebovával více energie.

Android Runtime (ART): Skok k předstihu

Chytrý telefon na klávesnici zobrazující stav baterie s odkazem na energetickou účinnost ART versus Dalvik.

Počínaje Androidem 5.0 Lollipop převzal ART kompletní kontrolu. Velký rozdíl spočívá v tom, že ART implementuje kompilaci Ahead-Of-Time (AOT) . Místo čekání na otevření aplikace se ART postará o těžkou práci během instalace. Používá nástroj s názvem dex2oat k převodu souborů DEX do spustitelných souborů ELF (Executable and Linkable Format), které jsou nativní pro Linux.

Díky tomuto přístupu nemusí systém po klepnutí na ikonu aplikace nic kompilovat; jednoduše přečte soubor ELF a spustí ho. To znamená, že procesor pracuje méně, baterie vydrží déle a aplikace fungují mnohem plynulejší. Existuje však malý kompromis: instalace aplikací trvá o něco déle a zabírají více úložného prostoru než u Dalviku.

Technické srovnání a klíčová vylepšení

Přestože jsou obě prostředí kompatibilní a běží stejný bajtkód DEX, společnost ART zavedla vylepšení, která systém neuvěřitelně zrychlují. Jedním z nejvýznamnějších je garbage collector (GC) . V Dalviku dříve garbage collector způsoboval otravné pauzy neboli „koktaní“ v rozhraní (nechvalně známé lag). Společnost ART tento systém přepracovala s primárně souběžným systémem , takže pauzy jsou nezávislé na množství použité paměti.

  • Pokročilé ladění: ART umožňuje vývojářům vidět, které zámky drží vlákna, a sledovat instance tříd s mnohem větší přesností.
  • Přesné diagnózy: Nyní, když dojde k pádu aplikace, jsou chybové zprávy mnohem podrobnější, zejména v případech Výjimka NullPointerException.
  • Správa paměti: Na rozdíl od Dalviku, který používal nestránkovatelnou mezipaměť, ART používá paměť RAM, která stránkování je možné, optimalizace využití hardwaru.
  Wi-Fi 7: Jak ji využít ke zlepšení domácího připojení

Proces balení: Od kódu po APK

Vývojové prostředí s notebookem a chytrým telefonem, představující proces balení zdrojového kódu až do souboru APK.

Aby kterékoli z těchto prostředí fungovalo, musí kód projít montážní linkou. Nejprve kompilátor Javy vytvoří soubory .class, které pak nástroj dex převede do jednoho souboru classes.dex. Tento soubor je jádrem APK a je to, co ART nebo Dalvik zpracuje.

Nástroje jako aapt se používají k balení zdrojů a zipalign optimalizuje zarovnání dat, čímž zajišťuje, aby procesor přistupoval k paměti co nejefektivněji. Jakmile se APK dostane do zařízení, stane se zázrak: pokud existuje ART, vygeneruje se soubor ELF ; pokud existuje Dalvik, soubor ODEX se začne generovat za chodu.

Zajímavosti o ROM a procesu dedexování

Ve světě vlastních ROM se běžně používají termíny odex a deodex . Protože soubor ODEX je závislý na hardwaru a přesném systému, ve kterém byl vytvořen, nelze jej snadno přenést z jednoho telefonu do druhého. Pro úpravu aplikace bez pádu systému provádějí vývojáři proces deodexování , který zahrnuje integraci optimalizovaného souboru do souboru APK pro usnadnění manipulace s ním.

Ekosystém Androidu se vyvinul z flexibilního, ale energeticky náročného virtuálního stroje do optimalizovaného běhového prostředí, které upřednostňuje uživatelský zážitek. Zatímco se Dalvik zaměřil na všestrannost překladu kódu v reálném čase, ART maximalizoval využití hardwaru prostřednictvím předkompilace , čímž zajistil stabilnější, rychlejší a energeticky úspornější software.