Tuesday, December 10, 2013

Software stack of Android

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.
[104]
Android uses Bionic in place of a standard C
library, originally 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. [105][106]
Android does not have a native X Window
System by default nor does it support the full
set of standard GNU libraries, and this makes
it difficult to port existing Linux applications
or libraries to Android.[107] Support for
simple C and SDL applications is possible by
injection of a small Java shim and usage of
the JNI[108] like, for example, in the Jagged
Alliance 2 port for Android.[109]

No comments:

Post a Comment