Wednesday, 18 January 2012

Introduction to Android

What is android?

Android is an operating system for mobile phones, tablets developed under Open Handset Alliance(OHA). It includes OS, Middleware and Applications. The first android mobile phone was Google's G1 released in 2008 in collaboration with T-mobile.

What is Open Handset Alliance(OHA)?

OHA is a group of organizations collaborating to build a better mobile phone. The group is led by Google, includes mobile operators, handset manufacturers, platform providers, and marketing companies. Android is the first complete, open, and free mobile platform developed by OHA.

Some Big players of OHA
  • Mobile operators :-  Sprint, T-Mobile, vodafone, NTT docomo, etc
  • Handset Manufacturers :- Acer, Alcatel, Dell, Fujitsu, HTC, Huawei Technologies, LG Electronics, Motorola Inc, Samsung, Sony Ericsson, etc
  • Semiconductor Companies :- ARM, Intel Corporation, Marvell Semiconductor Inc, MIPS Technologies, NVIDIA Corporation, Qualcomm Inc, ST-Ericsson,Texas Instruments Incorporated, Via Telecom, etc
  • Software Companies  :-  Google Inc, eBay Inc, Myriad, MOTOYA Co, SkyPop, SONiVOX, VisualOn Inc, ACCESS CO LTD, etc


Architecture of android OS




There are 4 layers in android
  1. Linux kernel
  2. Libraries
  3. Aplications framework
  4. Applications

  • Linux Kernel
This is the lowest level. Linux version 2.6 is used to build the android's kernel. This kernel includes Memory management programs, Power management progrmas and other hardware drivers such as Bluetooth Driver, Camera Driver, Display Driver, USB Driver, Audio Driver. The Drivers are the programs that control hardware of a device for example the bluetooth driver manages bluetooth application and using Camera driver you can send commands to the camera hardware.

  • Libraries
The next level is libraries.  Libraries are the set of APIs through which you can access and handle different kinds of data. The libraries included are SQLite, Webkit, Media Framework, OpenGL/ES,etc. If you want to play a media player then you need to use Media Framework library, If you want to store data in a database then you need SQlite.

 In the same layer you will find two more elements a.Dalvik Vertual Machine b.Core libraries

a.Dalvik Vertual Machine :- This is where all android application run. It is like JVM in Java

b.Core libraries :- These are the set of core libraries that provides most of the functionality available in the core libraries of the Java programming language
  • Application Framework
The next highest level in the architecture is application framework. This layer consists of several programs manage the basic functions such as handling a telephone application which is managed by Teliphony Manager, Knowing physical location of a phone which is handled by the Location Manager, sharing data across applications which is handled by Content Providers, A Notification Manager that enables all applications to display custom alerts in the status bar, An Activity Manager that manages the lifecycle of applications.
  • Applications
The highest level in the android architecture is Applications. This is the layer for common users where they can open a web browser, make a call, play a game etc.

Why android?

There are many reasons why you should consider using android phones or why you should develop applications for android devices.

For Users

1. Hardware flexibility :- Some users prefer large screen mobiles and some users prefer mobiles with small screen because they feel that it is easy to carry. Some users want phone with high resolution camera where as some users dont care for camera resolution. Some Users want really large storage space. If you consider iphone only third requirement can be met where you can buy iphone with 8GB,16GB and 32GB of storage space but in android all the requirements can be met as there are many vendors who manufactures devices with varying size, storage space etc.

2. Faster pace :- As you are aware there are tens of hundreds of new android mobiles released daily where as apple releases new models at much slower pace compared to its competitors.

3.Price :- This is the main reason why users should look at android. Iphone comes with only one price but in android there many devices with diffrent price options.

For Developers


1.Language :- If you want to develop for iphone you should learn Objective C where as in android you can develop apps using java which is more familiar to many developers.

2.OS :- If you want to develop for iphone you should buy Mac OS.You cant develop iphone apps on Windows or linux where as to develop android apps you can use any OS.

3.Developer account :- You need to pay 99$ per year to open iphone developer account where as in android it's 25$ for lifetime.

In the next article I will show you how to write a Hello World application in android.

1 comment: