Java: Unterschied zwischen den Versionen

K (Neuer Abschnitt "Weblinks")
K (classes.dex)
Zeile 6: Zeile 6:
== Technische Details ==
== Technische Details ==


Der Java-Quellcode wird von einem Compiler in sog. '''Bytecode''' für die sog. '''Java Virtual Machine (JVM)''' übersetzt.
Der Java-Quellcode wird von einem Compiler in ''Bytecode''' für die '''Java Virtual Machine (JVM)''' übersetzt.
Diese JVM kann man sich als simulierte CPU vorstellen, die den Java-Bytecode als Maschinencode ausführt.  
Diese JVM kann man sich als simulierte CPU vorstellen, die den Java-Bytecode als Maschinencode ausführt.  
Hierdurch lässt sich der Java-Bytecode auf jedem Betriebssystem (z.B. Windows-Varianten, [[Linux]] und MacOS) und jeder CPU-Plattform, für die eine Implementierung der JVM verfügbar ist, ausführen (Plattform-Unabhängigkeit).<ref>{{Cite web | url = http://www.theserverside.com/definition/Java-virtual-machine-JVM  | title = Java virtual machine (JVM) | accessdate = 2017-05-20  | publisher = theserverside.com | author = Margaret Rouse | language = en }}</ref>
Hierdurch lässt sich der Java-Bytecode auf jedem Betriebssystem (z.B. Windows-Varianten, [[Linux]] und MacOS) und jeder CPU-Plattform, für die eine Implementierung der JVM verfügbar ist, ausführen (Plattform-Unabhängigkeit).<ref>{{Cite web | url = http://www.theserverside.com/definition/Java-virtual-machine-JVM  | title = Java virtual machine (JVM) | accessdate = 2017-05-20  | publisher = theserverside.com | author = Margaret Rouse | language = en }}</ref>
Für Android-Apps wird dieser Bytecode aber in speziellen Bytecode für die [[Dalvik VM|Dalvik Virtual Machine (DVM)]] übersetzt, der für die Ausführung von den für Android-Geräte typischerweise verwendeten CPUs optimiert ist. Bei der ab [[Android]] {{Android|4.4}} zur Verfügung stehenden Laufzeitumgebung [[Android Runtime|Android Runtime (ART)]] wird der Bytecode für die DVM einmalig in Geräte-spezifischen Maschinencode übersetzt.  
Für Android-Apps wird dieser Bytecode aber in speziellen Bytecode für die [[Dalvik VM|Dalvik Virtual Machine (DVM)]] übersetzt, der für die Ausführung von den für Android-Geräte typischerweise verwendeten CPUs optimiert ist. Der Dalvid-Bytecode ist in der [[Apk|Apk-Datei (Installations-Datei)]] in Form der Datei <code>classes.dex</code> enthalten. Bei der ab [[Android]] {{Android|4.4}} zur Verfügung stehenden Laufzeitumgebung [[Android Runtime|Android Runtime (ART)]] wird der Dalvik-Bytecode einmalig in Geräte-spezifischen Maschinencode übersetzt.