The Android Architecture Elements:
Predefined standard applications are pre-installed with every device, such as:
- SMS app
- Web browser
- Contact manager
- Email App
As a developer we are able to write an app which replaces any existing system app.
Applications are the top layer in the Android architecture. This is used in our application development to run
Manages the activity life cycle of applications. To understand the Activity component
Manage different activities in Android
Manage the data sharing between applications. Our Post on Content Provider component describes this in greater detail
An extensible set of views used to create application user interfaces
Manages the different packages in Application
Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
Manage the various types of resources we use in our Application
Location management, using GPS or cell tower
Allows applications to display alerts and notifications to the user.
- It is the basic layer of Android. The complete Android OS is built on top of the Linux.
- It interacts with the hardware and contains all the essential hardware drivers.
- Drivers are programs that control and communicate with the hardware. For example, consider the Bluetooth function, all devices has a Bluetooth hardware in it. So that kernel must include Bluetooth driver to communicate with the Bluetooth hardware.
- The Linux kernel acts as an abstraction layer between the hardware and other software layers. Android uses the Linux for all its core functionality such as Memory management, process management, networking, security settings etc.
- The next layer is the Android’s native libraries, this is the layer that enables the device to handle different types of data. These libraries are written in C or C++ language and are specific for a particular hardware.
- Some of the Libraries are ,
Media framework: Media framework provides different media codec’s allowing the recording and playback of different media formats and static image files.
SQLite: It is light weight relational database engine used in android for data storage purposes.
WebKit: It is the browser engine used to display HTML content.
OpenGL: Used to deliver 2D or 3D graphics content to the screen.
SSL : (Secure Socket Layer) Used for Internet Security.
FreeType : Bit map and font interpretation
SurfaceManager : Manages access to the display subsystem and provides support for 2D and 3G graphic layers from multiple applications.
Every android application runs in its own process, with its own instance of the Dalvik Virtual Machine.
Dalvik virtual Machine
- The DVM operates on bytecodes that are transformed from the Java Class files compiled by a Java compiler into another class file format called the .dex format using a dx tool which is included in the Android SDK (Software Development Kit).
- A virtual machine optimized for mobile devices that was designed and written by Dan Bornstein and other Google engineers.
- The intention of the DVM is creation of platform neutral dex files, this process seems like as Java Virtual Machine (JVM), which processes the Java bytecodes while using Java Class files or Jar files.
- The processes of the DVM is optimized instructions for the low memory requirements needed for development and implementation of applications for the mobile phone platform.
- The DVM is register-based, and it can run classes compiled by a Java language compiler that have been transformed into its native format.