Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Dalvik (software)

Z Wikipedie, otevřené encyklopedie
Dalvik
VývojářDan Bornstein
Operační systémLinux (jádro)
PlatformaAndroid (operační systém)
Typ softwaruvirtuální stroj aJava Virtual Machine
LicenceApache Licence 2.0
Webhttp://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.

Architektura

[editovat |editovat zdroj]

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í.

Výkon

[editovat |editovat zdroj]

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.

Licence a patenty

[editovat |editovat zdroj]

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]

Reference

[editovat |editovat zdroj]

V tomto článku byl použitpřeklad textu z článkuDalvik (software) na anglické Wikipedii.

  1. BORNSTEIN, Dan.Presentation of Dalvik VM Internals [online]. Google, 2008-05-29 [cit. 2010-08-16]. S. 22.Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  2. SHI, Yunhe; GREGG, David; BEATTY, Andrew; ERTL, M. Anton.Virtual Machine Showdown: Stack Versus Registers [online]. 2005-06-11 [cit. 2009-12-22].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  3. VANDETTE, Bob.Java SE Embedded Performance Versus Android 2.2 [online].Oracle Corporation, 2010-11-22 [cit. 2011-09-04].Dostupné v archivu pořízeném dne 2011-06-28. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  4. Hyeong-Seok Oh, Beom-Jun Kim, Hyung-Kyu Choi, Soo-Mook Moon.Evaluation of Android Dalvik virtual machine [online].Association for Computing Machinery, 2012 [cit. 2014-03-23].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  5. Top AndEBench Scores [online]. www.eembc.org [cit. 2014-03-23].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  6. Stefano Mazzocchi.Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME [online]. 2016-10-01 [cit. 2010-08-16].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  7. Ed Bott.The real history of Java and Android, as told by Google [online].ZDNet, September 8, 2011 [cit. 2011-11-27].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
Citováno z „https://cs.wikipedia.org/w/index.php?title=Dalvik_(software)&oldid=25162465
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp