Sunday, 14 July 2013

Beginning of Android Applications Development

Welcome to the world of Android!

What is Android?

Android is a mobile operating system based on Linux, Android applications are written in Java programming.

It provides tools like compiler, debugger and an embedded device emulator (AVD-Android Virtual Device through which developer can check their apps) and own java virtual machine known as Dalvik Virtual Machine (DVM).

Android is officially guided by the Open Handset Alliance (OHA) but in reality it is Google Leading Project. It provides opens source code facility under the open source Apache License.
Android supports 2-D and 3-D graphics using the OpenGL libraries and support embedded data storage SQLite data base.

Every Android applications runs in its own process and under its own use “id” which is generated automatically by the Android System during development.

Therefore each application is isolated from other running applications and a misbehaving application cannot easily harm other Android Applications.

Features of Android

 Android is open source and freely available to manufacturers for customization, there are no fixed hardware or software configurations. However, Android itself supports the following features:

Storage — Uses SQLite a light weight relational database, for data storage.

Connectivity — Supports GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (includes A2DP and AVRCP), Wi-Fi, LTE, and WiMAX. Messaging — Supports both SMS and MMS.

             Web browser — Based on the open source WebKit.

             Media support — Includes support for the following media: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or
3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

 Hardware support — Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor, and GPS.

Multi-touch — Supports multi-touch screens.

Multi-tasking — Supports multi-tasking applications.

Flash support — Android 2.3 supports Flash 10.1.

Tethering — Supports sharing of Internet connections as a wired/wireless hotspot.

Architecture of Android

In order to understand how Android works, follow to the below figure, which shows the various
layers that make up the Android operating system (OS).

The Android OS is roughly divided into five sections in four main layers:

 Linux kernel — This is the kernel on which Android is based. This layer contains all the low level device drivers for the various hardware components of an Android device.

 Libraries — These contain all the code that provides the main features of an Android OS. For
example, the SQLite library provides database support so that an application can use it for
data storage. The WebKit library provides functionalities for web browsing.

Android runtime — At the same layer as the libraries, the Android runtime provides a set
of core libraries that enable developers to write Android apps using the Java programming
language. The Android runtime also includes the Dalvik Virtual Machine, which enables every
Android application to run in its own process, with its own instance of the Dalvik Virtual
Machine (Android applications are compiled into Dalvik executables). Dalvik is a specialized
virtual machine designed specifically for Android and optimized for battery-powered mobile
device with limited memory and CPU.

 Application framework — Expose the various capabilities of the Android OS to application
Developer  so that they can make use of them in their applications.

 Applications — At this top layer, you will find applications that ship with the Android device
(such as Phone, Contacts, Browser, etc.), as well as applications that you download and install from the Android Market. Any applications that you write are located at this layer.