Monday, February 20, 2012

Beginning Android (Part 1) - Introducing Android

Revision History

Revision 0.4 - Feb. 27, 2012

Feb. 20, 2012
  • Created.
0.1 - 0.2
Feb. 21, 2012
  • Remove "Why develop for Android?" content (this will be included in part 2)
  • Grammar correction
  • Revise "Android Architecture" content
  • Revise "Android Versions" content
Feb. 22, 2012
  • Minor enhancements
Feb. 27, 2012
  • Removed Samsung Spica image

Introducing the Android Platform

This post will provide a brief overview of the Android platform.

Brief Contents
  1. What is Android? -- The Android Platform
  2. The Android Architecture
  3. The Android Dalvik VM
  4. Android Versions

Android is NOT hardware; it is a Linux-based software application platform built for mobile devices and tablets. It is primarily a Google effort in collaboration with the Open-Handset Alliance. All user applications in Android are written in Java, while the native OS component is written in C/C++. To write Android applications, knowing how to write programs with Java technology is required.

The Android platform is licensed under the Apache Software License (ASL), and its Linux kernel was released under the General Public License (GPL).

The Android Architecture

Basically Android has 4 layers:
  • Applications - these are the applications written in Java (including the set of core Applications like email, calendar, maps, browser, etc. that ship with Android).
  • Applications Framework - these are the arrays of managers that provide services for Activities/Views, Windows, Telephony, Location-based services, Content Providers and resources.
  • Libraries and Runtime - these are the prominent code libraries which include WebKit technology, Sqlite persistence support, and advance graphic libraries (2D/3D/SGL/OpenGL ES). The runtime includes the core Java libraries and the Dalvik VM.
  • Linux Kernel - a kernel provides the core abstraction layer and facilities such as process management, memory management, file system management, device management, etc. The kernel is where hardware-specific drivers are implemented (such as BlueTooth and Wi-Fi).  Device drivers are usually written in C/C++.

Android Software Stack

The Android's Dalvik Virtual Machine

The Dalvik VM is simply the software that runs the applications on Android devices. The Java .class files are converted into Dalvik-compatible .dex files. Android is NOT a Java ME. Java ME applications cannot run on Android, or vice-versa. If you want to run regular Java ME applications on Android you must have installed a Java ME implementation for Android like PhoneME and Aplix JBlend (my Android has pre-installed JBlend).

Android Versions

The latest release (as of the time of this writing) is Android Ice Cream Sandwich. Below is the list of devices that officially run Ice Cream Sandwich:
  • Samsung Galaxy Nexus
  • Huawei Honor
  • Asus Eee Pad Transformer Prime
Please refer to Platform Versions for more information about the relative number of active devices running a given version of the Android platform.

Thank You!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.