The Android operating system is built
on a modified Linux kernel (see Figure 3).
The software stack contains Java applications running on a virtual
machine, and system components are
written in Java, C, C++, and XML.
Android phones ship with a rich
array of built-in activities (the Android term for services),
including email, a Web browser, and a map application.
The platform embraces a replace and reuse philosophy, which lets users
customize the phone. For example,
Android phones come with a built-in
photo viewer, which all applications
that view photos use. However, users
can replace the photo viewer with a customized one,
and all applications will
automatically call the customized one.
All applications use (or reuse) the same
activity. This is an example of the system’s open design.