Android Introduction

Before we go into the programming and layouting of Android, let us first have a small introduction about this environment.

This chapter introduces Android, how it was formed and what devices uses the Android system. We will be checking the market share that Android has taken from the existing market. It is also important to know about the architecture and the framework that Android has. This will cover and show the features, components and the software stack that Android includes.

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. It is an operating system based on the Linux kernel, and designed primarily for touchscreen mobile devices such as smartphones and tablet computers. Initially this was developed by Android, Inc., which Google backed financially and later bought the company in 2005. Android was unveiled in 2007 along with the founding of the Open Handset Alliance—a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. The first publicly available smartphone running Android, the HTC Dream, was released on October 22, 2008.

OHA (Open Handset Alliance)

OHA is a business alliance consisting of 47 companies to develop open standards for mobile devices. This is a consortium that aims to develop open standards for mobile devices. This was established on November 6, 2007 and was led by Google together with members including mobile handset makers, application developers, some mobile carriers and chip makers.

Phones and Tablets

Phones

Some Android phones from Samsung, Sony Ericsson, Motorola and HTC.

Tablets

Some Android tablets from Acer, Toshiba, Samsung and Asus.

Market Share

Android Market Share

The first publicly available Android was the HTC Dream. It was released on October 22, 2008. From then, Android share in the market slowly climbed up surpassing all other rivals in the market. At the current statistics, Android has already captured the biggest share in the mobile devices market.

Architecture

Android Software Stack – Application

Android provides a set of core applications:

  1. Email Client
  2. SMS Program
  3. Calendar
  4. Maps
  5. Browser
  6. Contacts
  7. Etc

All applications are written using the Java language.

Software Stack – Framework

Enabling and simplifying the reuse of components

  1. Developers have full access to the same framework APIs used by the core applications.
  2. Users are allowed to replace components.

Framework Features

FeatureRole
View SystemUsed to build an application, including lists, grids, text
boxes, buttons, and embedded web browser
Content ProviderEnabling applications to access data from other
applications or to share their own data
Resource ManagerProviding access to non-code resources (localized strings, graphics, and layout files)
Notification ManagerEnabling all applications to display customer alerts in the   status bar
Activity ManagerManaging the lifecycle of applications and providing   a common navigation backstack

Software Stack – Libraries

  1. Including a set of C/C++ libraries used by components of the Android system
  2. Exposed to developers through the Android application framework

Core Libraries

Providing most of the functionality available in the core libraries of the Java language

APIs

  1. Data Structures
  2. Utilities
  3. File Access
  4. Network Access
  5. Graphics
  6. Etc

Software Stack – Runtime

Runtime

Dalvik Virtual Machine

  1. Providing environment on which every Android application runs
    * Each Android application runs in its own process, with its own instance of the Dalvik VM.
    * Dalvik has been written such that a device can run multiple VMs efficiently.
  2. Register-based virtual machine
  3. Executing the Dalvik Executable (.dex) format
    * .dex format is optimized for minimal memory footprint.
    * Compilation
  4. Relying on the Linux Kernel for:
    * Threading
    * Low-level memory management

Software Stack – Kernel

Relying on Linux Kernel 2.6 for core system services

Memory and Process Management

  1. Network Stack
  2. Driver Model
  3. Security

Leave a Reply

Your email address will not be published. Required fields are marked *