| Vývojář | Dan Bornstein |
|---|---|
| Operační systém | Linux (jádro) |
| Platforma | Android (operační systém) |
| Typ softwaru | virtuální stroj aJava Virtual Machine |
| Licence | Apache Licence 2.0 |
| Web | http://source.android.com/devices/tech/dalvik/index.html |
| Některá data mohou pocházet zdatové položky. | |
| Dalvik Executable | |
|---|---|
| Přípona souboru | .dex |
Dalvik je v informatice názevvirtuálního stroje od firmyGoogle, který v systémuAndroid vytváříběhové prostředí proaplikace napsané v programovacím jazyceJava. V systému Android 4.4 „KitKat“ byl v roce 2013 uveden jako ukázka nástupce DalvikuAndroid Runtime (ART) a ve verzi Android 5.0 „Lollipop“ v roce 2014 již ART úplně nahradil původní virtuální stroj Dalvik.
Programy proAndroid jsou převážně psané v programovacím jazyce Java. Jsou kompilovány dobajtkódu proJava Virtual Machine. Ten je posléze přeložen dobajtkódu Dalviku a uložen v souborech.dex (DalvikEXecutable) a.odex (OptimizedDalvikEXecutable). Pojmyodex ade-odex se používají ve spojení s konverzíbajtkódu. Kompaktní formátDalvik Executable je navržen pro systémy, které jsou omezeny paměťovou nebo výkonovou kapacitou.
Java Virtual Machines jsouzásobníkové počítače, naproti tomuDalvik Virtual Machines používají architekturu založenou naregistrech. Ta vyžaduje méně složitých instrukcí virtuálního stroje. Programy pro Dalvik jsou napsané v Javě s využitímAndroid API. Napsané aplikace jsou dále zkompilovány dobajtkódu Javy a podle potřeby převedeny na instrukce Dalviku.
Nástroj zvanýdx se používá k převodu souborů.classJavy do formátu.dex. Větší množství tříd je zahrnuto v jediném souboru.dex. Duplicitní řetězce a konstanty používané ve více třídách jsou ve výstupním souboru.dex obsaženy pouze jednou (pro úsporu místa).Bajtkód Javy je pak převeden doinstrukční sady používané Dalvik Virtual Machines. Nekomprimované soubory.dex jsou typicky o pár procent menší než komprimované soubory.jar (JavaARchive) (při použití stejných souborů.class).[1]
Spustitelné soubory Dalvik (Dalvik Executable) mohou být při instalaci domobilního zařízení znovu upravené a to s cílem dalších optimalizací.
Přínosyzásobníkových počítačů oproti registrovým počítačům jsou předmětem pokračující debaty.[2]
Zásobníkové počítače obecně musejí použít instrukce k načtení dat do zásobníku a s těmi daty dále manipulují. Při implementaci vysokoúrovňového kódu to vyžaduje více instrukcí oproti použití registrových počítačů. Instrukce v registrových strojích bývají ovšem delší, protože musí kódovat zdrojové a cílové registry. Tento rozdíl je nejvíce důležitý kvůliinterpretům Virtual Machines, pro které je vystavení operačního kódu velice drahou záležitostí. Podobně tomu je i u jiných faktorů, jako jejust-in-time kompilace.
Testy provedené na zařízeníchARM v roce 2010 firmouOracle (majitelem technologií Java) ukazují, žeJava SE embedded (při použití standardních bezgrafických benchmarků) je dvakrát až třikrát rychlejší nežAndroid 2.2 (v něm byl poprvé použit kompilátorJIT).[3]
V roce 2012, bylo akademicky prokázáno, že Dalvik je téměř 3× pomalejší nežHotSpot, mimo jiné se ukázalo, že kód generovaný Dalvikem byl delší než kód generovanýHotSpotem.[4]
Kromě toho testy provedené na stejnýchAndroidích zařízeních (březen 2014) ukazují, že nativní aplikace v C mohou být až 30× rychlejší než aplikace spuštěné na Dalvik Virtual Machines.[5] Aplikace spuštěnéinterpretem z roku 2009 vykazují při použití jakJava Native Interface, tak nativního kódu zvýšení rychlosti.
Dalvik je zveřejněn pod licencíApache Licence 2.0. Podle Googlu je Dalvik implementován jakoclean-room, což by znamenalo, že nedědí licenci (její omezení), pod kterou je Java Runtime (standardní ani opensourceová edice).[6] Tento fakt je zdrojem pří, jež vyvolává hlavněOracle.[7]
V tomto článku byl použitpřeklad textu z článkuDalvik (software) na anglické Wikipedii.
{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.