You are on page 1of 50

Android Overview

Rao Vandana
A Software platform and operating system for mobile.
Based on the Linux kernel.
Android was found way back in 2003.
It was developed in Palo Alto, California.
Android was developed by the Andy Rubin, Rich Miner,
Nick Sears and Chris White.
Android was purchased by the GOOGLE in
AUGUST,2005 for 50 million $.
Google wanted Android to be open and free; hence,
most of the Android code was released under the open
source Apache License, which means that anyone who
wants to use Android can do so by downloading the full
Android source code.
Its group of several companies.
This group of companies are allowed to use
source code of Android and develop applications.
Reason for Nokia not to develop Android Mobiles
is Nokia is not part of OHA.
Types of
Android
Devices
Galaxy Note 3
Galaxy Tablet
Android-Powered Microwave

By Touch Revolution at CES 2010


Android-Powered Watch
Android-Powered Camera
Android-Powered TV
Android-Powered Car Radio
Android-Powered Washing
Machine
Android-Powered PC
Features of Android
Because Android is open source and freely available to
manufacturers for customization, there are no fixed hardware
or software configurations. However, Android itself supports
the following features:
Storage Uses SQLite, a lightweight relational database.
Connectivity Supports GSM/EDGE, IDEN, CDMA, EV-
DO, UMTS, Bluetooth (includesA2DP and AVRCP), Wi-Fi,
LTE, and WiMAX.
Messaging Supports both SMS and MMS.
Web browser Based on the open source WebKit, together
with Chromes V8 JavaScript Engine
Features of Android
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
Versions
Versions
The Android Story
Android is the operating system that powers
more than one billion smartphones and
tablets.
Since these devices make our lives so sweet,
each Android version is named after a
dessert. Whether it's getting directions or
even slicing virtual fruit, each Android release
makes something new possible.
What is Google Android?
A software stack for mobile devices that includes
An operating system
Middleware
Key Applications

Uses Linux to provide core system services


Security
Memory management
Process management
Power management
Hardware drivers
Android Architecture
Android Architecture
The above architecture diagram shows the various layers that make up the
Android OS.
The Android OS is roughly divided into five sections in four main layers.
Each layer in the architecture provides different services to the layer just above
it.
Linux kernel
Android architecture is based on Linux 2.6 kernel.
Android uses Linux kernel as a hardware abstraction layer. So if you are
an OEM (Original Equipment Manufacturer), trying to bring up Android
on a new device, the first thing you do is bring up Linux and get all your
drivers in place.
The reason of using Linux is because it provides proven driver model &
in lots of cases existing drivers.
It also provides memory management, process management, a security
model, networking and a lot of core operating system infrastructure that
are robust and have been proven over time.
Official reasons for why to use a Linux kernel from a Google IO preso:
Great memory and process management
Permissions-based security model
Proven driver model
Support for shared libraries
Its already open source!
Libraries
On top of Linux kernel there is a set of libraries including open-source Web
browser engine WebKit, well known library libc, SQLite database which is a
useful repository for storage and sharing of application data, libraries to play
and record audio and video, SSL libraries responsible for Internet security
Libraries run on the top of the kernel, these contains all the code that
provides the main features of an Android OS.
Some of the useful libraries are:

Surface Manager: The Surface Manager is used for display management.


Surface Manager is responsible for composing different drawing surfaces on the
screen. It manages the access for different processes to compose 2D and 3D
graphic layers.

Graphics Libraries (Open GL|ES, SGL): The Open GL|ES, SGL are two core
graphics libraries. The Open GL|ES is a 3D graphics library while SGL is 2D
graphics library.
Media Framework: The media framework was provided by PacketVideo, one of
the members of OHA. The media framework contains all of the codecs that are
required for multimedia experience.

FreeType: used to render the fonts.

SSL: used for internet security.

SQLite: provides database support.

WebKit: open source browser engine.


Android Runtime
This is the third section of the architecture and available on the second
layer from the bottom. This section provides a key component called
Dalvik Virtual Machine which is a kind of Java Virtual Machine specially
designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory
management and multi-threading, which is intrinsic in the Java language.
The Dalvik VM enables every Android application to run in its own
process, with its own instance of the Dalvik virtual machine.
The Android runtime was designed specifically for Android to
meet the need of running in an embedded environment.
where you have limited battery, limited memory, limited CPU.
The Android runtime have two main components: Dalvik
Virtual Machine & Core libraries.
The Dalvik Virtual Machine (DVM) runs something called .dex
files, these are byte codes that are the results of converting .class
and .jar files at built time.
So these files once converted to .dex becoming much more
efficient byte code, they can run very well on small processors,
use memory very efficiently, data structures are designed to be
shared across process whenever possible.

The Android runtime core libraries are written in java


programming language. The core libraries provides the most of the
functionality available in the code java libraries as well as the
Android-specific libraries.
Application Framework
Application framework is the toolkit that all the applications use. These applications
includes the ones that come with the phone like the home application or the phone
application, includes applications written by the Google and includes the
applications that written by you. So all the applications use the same framework &
the same APIs.

Some of the main components of application framework are-


Activity Manager: Manages the lifecycle of all the applications.
Packages Manager: Keep track of which applications are installed on your device.
Window Manager: Manages different windows.
Telephony Manager: Contains the APIs that we use to build the phone application
that central to phone experience.
Content Providers: Allows applications to share the data with other applications.
Resources Manager: Used to manage application resources.
View System: Contains building blocks of Android UI.
Location Manager: Location management, using GPS or cell tower.
Notification Manager: Manages different notifications.
XMPP Manager: Used to manage XMPP (Extensible Messaging and Presence
Protocol) service.
Applications
Applications are the top layer in the Android architecture and this is where
all pre-installed & our own apps exists. This layer uses the same
application framework provides by the layers below.
You will find all the Android application at the top layer. You will write
your application to be installed on this layer only. Examples of such
applications are Contacts Books, Browser, Games etc.
Mobile Devices: Advantages
Always with the user
Typically have Internet access
Typically GPS enabled
Typically have accelerometer & compass
Most have cameras & microphones
Many apps are free or low-cost
Mobile Devices: Disadvantages
Limited battery life
Limited processor speed
Limited and sometimes slow network access
Limited or awkward input: soft keyboard, phone
keypad, touch screen, or stylus
Range of platforms & configurations across
devices link
Mobile Applications
What are they?
Any application that runs on a mobile device
Types
Web apps: run in a web browser
HTML, JavaScript, Flash, server-side components,
etc.
Native: compiled binaries for the device
Often make use of web services
Android Apps
Built using Java and new SDK libraries
No support for some Java libraries like Swing &
AWT
Java code compiled into Dalvik byte code
(.dex)
Optimized for mobile devices (better memory
management, battery utilization, etc.)
Dalvik VM runs .dex files
Android Application
Development

Android
Android
SDK
Studio

Android
Android
Mobile
Emulator
Device
Android development

Java Source
Android
Manifest
Generated Java .dex Dalvik
Class Compiler File VM
Resource
XML
Android
Libraries
Development
process for an
Android app

http://developer.android.com/guide/developing/index.html
Building and running
Compiled resources
(xml files)

Android Debug Bridge

ADB is a client server program that connects clients on developer


machine to devices/emulators to facilitate development.
An IDE like Eclipse handles this entire process for you.

http://developer.android.com/guide/developing/building/index.html#detailed-build
Thank You