Thursday, September 5, 2013

What is Android and what are Android Platform Components?

Android

Android is a Linux-based operating system and the world's most popular, widely used mobile platform designed primarily for touchscreen mobile devices such as smartphones and tablet computers and developed by Android, Inc. Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin ,Rich Miner, Nick Sears and Chris White. The project responsible for developing the Android system is called the Android Open Source Project (AOSP) and is primarily lead by Google.
Android is an open source which allows the software to be freely modified and distributed by the device manufacturers and developers. Additionally, Android has a large community of developers writing applications ("apps") that extend the functionality of devices written primarily in a customized version of the Java programming language. In October 2012, there were approximately 700,000 apps available.

Android Platform Components

The Android system is a powerful development framework which is typically defined into following four areas:

1. Applications: The Android Open Source project contains several default core applications like the email client, sms program, calendar, maps, browser, camera, gallery and music phone which are written in the Java programming language.
2.  Application framework: API allow for high-level collaboration with the Android system from Android applications. Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of existing components. Any application can publish its capabilities and other applications can make use of those capabilities.
3. Libraries and Android Runtime: Android contains a set of C/C++ libraries used by various components of the Android system for many functions such as graphic rendering, data storage and web browsing etc. These capabilities are exposed to developers through the Android application framework (API). Some of the core Andoid libraries are listed below:

System C library - a BSD-derived implementation of the standard C system library (libc), tuned for           embedded Linux-based devices.
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording       of many popular audio and video formats as well as static image files including MPEG4, H.264, MP3,           AAC, AMR, JPG, and PNG.
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D         graphic layers from multiple applications.
LibWebCore - a modern web browser engine which powers both the Android browser and an                   embeddable web viewl.
SGL - the underlying 2D graphics engine.
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D         acceleration (where available) or the included, highly optimized 3D software rasterizerl.
FreeType - bitmap and vector font rendering.
SQLite - a powerful and lightweight relational database engine available to all applicationsl.

The Android Dalvik runtime environment consists of a set of core libraries and virtual machine. On conventional computing devices, software runs directly on the operating system kernel but an Android application runs in its own process with its own instance of the Dalvik virtual machine. Dalvik has been written so that a mobile device can run multiple instances of it in an efficient and well-organized manner. Dalvik is very similar to typical JVM. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is enhanced for minimal memory outline. The VM is register-based and runs classes compiled by a Java language compiler that have been transformed into the .dex. The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

4. Linux kernel: At the base of Android environment, there is an exposed Linux Kernel that works as a communication layer for the underlying mobile phone’s hardware. The current release of the environment uses Linux kernel version 2.6.

The Android architecture is portrayed in the following diagram:



I hope this article will be very helpful for you. Comments and criticize will be welcome!

No comments:

Post a Comment