Mobile Application3
A mobile application, most commonly referred to as
an app, is a type of application software designed
to run on a mobile device, such as a smartphone or
tablet computer. Mobile applications frequently
serve to provide users with similar services to those
accessed on PCs. Apps are generally small,
individual software units with limited function .
What Is Android?4
Google’sAndy Rubin describes Android as:
The first truly open and comprehensive platform for mobile devices, all of the
software to run a mobile phone but without the proprietary obstacles that have
hindered mobile innovation.
5
“Android” specifically refers to a mobile operating system
(based on Linux) that is developed by Google. It is open-
source software, meaning that anyone can download the
source code and use or modify it.
Android was unveiled in 2007 with the founding of the Open
Handset Alliance (OHA).
The first publicly available smartphone running Android,
the HTC Dream, was released on October 22, 2008.
What Is Android?
OPEN HANDSET ALLIANCE6
A business alliance consisting of 47 companies to
develop open standards for mobile devices
@2011 Mihail L. Sichitiu
8
Phones
HTC G1,Droid,Tattoo
Motorola Droid (X)
Suno S880 Samsung Galaxy Sony Ericsson
@2011 Mihail L. Sichitiu
9
Tablets
Velocity Micro Cruz Gome FlyTouch Acer beTouch
Dawa D7
Toshiba Android SmartBook
Cisco Android Tablet
Android is made up of several necessary and dependent parts :
10
A hardware reference design (support the software stack).
A Linux operating system kernel (low-level hardware interface).
Open-source libraries for application development.
A run time used to execute and host Android applications
including (DVM).
An application framework exposes system services to app layer.
A user interface framework.
Preinstalled applications.
A software development kit (SDK) used to creat apps.
Android Parts
NATIVE ANDROID APPLICATIONS
11
An e-mail client
An SMS management application
A full PIM (personal information management) eg. Calender
contact list.
A WebKit-based web browser
A music player and picture gallery
A camera and video recording application
A calculator
The home screen
An alarm clock
Why Android13
No certification is required to become an Android
developer.
Google Play provides free, up-front purchase, and in-
app billing options for distribution and monetization
of your applications.
There is no approval process for application
distribution.
Developers have total control over their brands.
Development Framework16
Android applications are written using Java as the
programming language but executed by means of a custom
VM called Dalvik, rather than a traditional Java VM.
The SDK
The Android SDK includes everything you need to start developing,
testing, and debugging Android applications with codes written
in Java
Native Development Kit also available (NDK)
allows developers to implement parts of apps in native-code languages like C/C++
Plug in available to use Eclipse integrateddevelopment environment
SDK17
Android APIs libraries, provide developers access tothe android stack
Development tools, let you compile and debug yourapplication to make it excutable.
The Android Virtual Device Manager and emulator,The emulator runs within an Android Virtual Device(AVD) that simulates a device hardware configuration.Using the emulator you can see how your applicationswill look and behave on a real Android device.
Full documentation
Sample code to demonstrate possibilities available
Android Architecture
Application19
Android provides a set of core applications:
Email Client
SMS Program
Calendar
Maps
Browser
Contacts
Etc
All applications are written using the Java language.
Android Architecture
App Framework20
These are the blocks that our applications directly
interacts with. These programs manage the basic
functions of phone like resource management, voice
call management etc. As a developer, you just
consider these are some basic tools with which we
are building our applications.
Android Architecture
App Framework (continue..)21
The Android framework includes the following key
services
Feature Role
View System
Used to build an application, including lists, grids, textboxes, 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
Android Architecture
Libraries22
Including a set of C/C++ libraries used by
components of the Android system
Exposed to developers through the Android
application framework
Android Architecture
Runtime23
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
Android Architecture
Runtime (contiue..)24
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.
Android Architecture
Runtime (contiue..)25
Dalvik Virtual Machine (Cont)
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