This article compares the application programming interfaces (APIs) and virtual machines (VMs) of the programming language Java and operating system Android. While most Android applications are written in Java-like language, there are some differences between the Java API and the Android API, and Android does not run Java bytecode by a traditional Java virtual machine (JVM), but instead by a Dalvik virtual machine in older versions of Android, and an Android Runtime (ART) in newer versions, that compile the same code that Dalvik runs to Executable and Linkable Format (ELF) executables containing machine code.
Attributes | Values |
---|
rdfs:label
| - Comparison of Java and Android API (en)
|
rdfs:comment
| - This article compares the application programming interfaces (APIs) and virtual machines (VMs) of the programming language Java and operating system Android. While most Android applications are written in Java-like language, there are some differences between the Java API and the Android API, and Android does not run Java bytecode by a traditional Java virtual machine (JVM), but instead by a Dalvik virtual machine in older versions of Android, and an Android Runtime (ART) in newer versions, that compile the same code that Dalvik runs to Executable and Linkable Format (ELF) executables containing machine code. (en)
|
dbp:wikiPageUsesTemplate
| |
Subject
| |
gold:hypernym
| |
prov:wasDerivedFrom
| |
Wikipage page ID
| |
page length (characters) of wiki page
| |
Wikipage revision ID
| |
Link from a Wikipage to another Wikipage
| |
has abstract
| - This article compares the application programming interfaces (APIs) and virtual machines (VMs) of the programming language Java and operating system Android. While most Android applications are written in Java-like language, there are some differences between the Java API and the Android API, and Android does not run Java bytecode by a traditional Java virtual machine (JVM), but instead by a Dalvik virtual machine in older versions of Android, and an Android Runtime (ART) in newer versions, that compile the same code that Dalvik runs to Executable and Linkable Format (ELF) executables containing machine code. Java bytecode in Java Archive (JAR) files is not executed by Android devices. Instead, Java classes are compiled into a proprietary bytecode format and run on Dalvik (or compiled version thereof with newer ART), a specialized virtual machine (VM) designed for Android. Unlike Java VMs, which are stack machines (stack-based architecture), the Dalvik VM is a register machine (register-based architecture). Dalvik has some traits that differentiate it from other standard VMs:
* The VM was designed to use less space.
* The constant pool has been modified to use only 32-bit indexes to simplify the interpreter.
* Standard Java bytecode executes 8-bit stack instructions. Local variables must be copied to or from the operand stack by separate instructions. Dalvik instead uses its own 16-bit instruction set that works directly on local variables. The local variable is commonly picked by a 4-bit virtual register field. Because the bytecode loaded by the Dalvik virtual machine is not Java bytecode and due to the way Dalvik loads classes, it is impossible to load library packages as jar files. A different procedure must be used to load Android libraries, in which the content of the underlying dex file must be copied in the application private internal storage area before it is loaded. (en)
|
foaf:isPrimaryTopicOf
| |
is Link from a Wikipage to another Wikipage
of | |
is foaf:primaryTopic
of | |