Android Basics

                            Android –" Imagination is the limit"

Android Basics

Introduction:
                     "The Open Handset Alliance  released the Google Android SDK on November 12th, 2007, having announced it about a week before. The impact was unbelievable, almost every IT/programming-related news-page dumped a news-post about the SDK release – the Google Groups was overwhelmed with over 2000 Messages within the first two Days. The idea of the Android Platform was and still is amazing and is of course attracting more and more programmers every day. Especially the open architecture based on Intents and the possibility to replace even the Home-application grant a really large amount of flexibility to the whole platform."

What is Android : 
                                "The weeks and months before Google released the Android SDK there had been a lot of rumors about a so called GPhone. It was said to be a mobile device manufactured by Google providing free communication by showing context-sensitive advertisements to the user on the device itself.  "


But on November 5th 2007 Andy Rubin2 announced: “The Android Platform – is more significant and ambitious than a single phone.” Google within the Open Handset Alliance (OHA) delivers a complete set of software for mobile devices: an operating system, middleware and key mobile applications. What was released a week later was not a final product, but a “First Look SDK” what many did not realize. Major news sites grabbed the discomforts of some developers who said that Android is full of bugs and heavily lacks of documentation. But the majority says that Android is not buggier than any other software at this stage.

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

Storage — Uses SQLite, a lightweight relational database, for data storage. Chapter 6 discusses
data storage in more detail.

Connectivity — Supports GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (includes
A2DP and AVRCP), WiFi, LTE, and WiMAX. Chapter 8 discusses networking in more detail.

Messaging — Supports both SMS and MMS. Chapter 8 discusses messaging in more detail.

Web browser — Based on the open-source WebKit, together with Chrome’s V8 JavaScript engine

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, take a look at Figure, which shows the various layers that make up the Android operating system (OS)."







                                                         Fig - Android Architecture


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 lowlevel
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 the Dalvik executables). Dalvik is a specialized virtual machine
designed specifically for Android and optimized for battery-powered mobile devices with limited
memory and CPU.

Application framework — Exposes the various capabilities of the Android OS to application
developers 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.