Sunday 18 May 2014

Software stack

On top of the Linux kernel, there are the middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik "dex-code" (Dalvik Executable), which is usually translated from the Java bytecode.[114][115] Android 4.4 also supports new experimental runtime virtual machine, ART, which is not enabled by default.[116]

Android's standard C library, Bionic, was developed by Google specifically for Android, as a derivation of the BSD's standard C library code. Bionic has several major features specific to the Linux kernel, and its development continues independently of other Android's source code bases. The main benefits of using Bionic instead of the GNU C Library (glibc) or uClibc are its different licensing model, smaller runtime footprint, and optimization for low-frequency CPUs.[115]

Android does not have a native X Window System by default, nor does it support the full set of standard GNU libraries. This made it difficult to port existing Linux applications or libraries to Android,[113] until version r5 of the Android Native Development Kit brought support for applications written completely in C or C++.[117] Libraries written in C may also be used in Java application by injection of a small Java shim and usage of the JNI.[118]


No comments:

Post a Comment