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:
- Email Client
- SMS Program
- Calendar
- Maps
- Browser
- Contacts
- Etc
All applications are written using the Java language.
Software Stack – Framework
Enabling and simplifying the reuse of components
- Developers have full access to the same framework APIs used by the core applications.
- Users are allowed to replace components.
Framework Features
Feature | Role |
View System | Used to build an application, including lists, grids, text boxes, buttons, and embedded web browser |
Content Provider | Enabling applications to access data from other applications or to share their own data |
Resource Manager | Providing access to non-code resources (localized strings, graphics, and layout files) |
Notification Manager | Enabling all applications to display customer alerts in the status bar |
Activity Manager | Managing the lifecycle of applications and providing a common navigation backstack |
Software Stack – Libraries
- Including a set of C/C++ libraries used by components of the Android system
- 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
- Data Structures
- Utilities
- File Access
- Network Access
- Graphics
- Etc
Software Stack – Runtime
Runtime
Dalvik Virtual Machine
- 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. - Register-based virtual machine
- Executing the Dalvik Executable (.dex) format
* .dex format is optimized for minimal memory footprint.
* Compilation - 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
- Network Stack
- Driver Model
- Security