Upload
abhishekh-nani
View
77
Download
0
Embed Size (px)
Citation preview
Android Platform
Adesh Bora
T.E.I.T
Roll No.-10
Guide
Prof. Pawar Mam
Downloaded from FaaDoOEngineers.com
Downloaded from FaaDoOEngineers.com
1. Introduction
2. Platform
3. Software development
4. Overall evaluation
Main topics
Downloaded from FaaDoOEngineers.com
Smart phone OS
Symbian
Windows Mobile
RIM Blackberry OS
Apple iOS
Google Android
Palm WebOS
Windows Phone 7
Downloaded from FaaDoOEngineers.com
Android
Software platform developed by Google for mobile phone Free of charge
Open source (Apache License except for kernel)
Packaging OS to upper layer applications such as browser
It is said that handset using Android will be released in 21st oct 2008
Downloaded from FaaDoOEngineers.com
Android OS
Fastest growing mobile OS
First phone launched HTC G1 in 2008
Currently an OS of choice for Motorola,
HTC, Samsung, Sony Ericsson, among
others
Software updates every few months
Downloaded from FaaDoOEngineers.com
What is Android?
A complete software stack for mobile devices.. Introducing Android
A first joined project off the Open Handset Alliance (OHA)..
First open, complete and free platform
Software stack open-sourced under Apache 2..0 license
Source code will be available and everyone will have the capability to built an image
The Android platform
It includes an operating system,, a middleware and some applications..
Lightweight and full featured
Developers can extend and replace existing components
A generous development environment
A SDK is available to build, compile, test and debug user applications..
Applications are developed using Java programming language
No difference between the built-in applications and the user ones
Downloaded from FaaDoOEngineers.com
The Android platform
Linux Kernel
Native Libraries
Android Runtime
Applicatiion Framework…
Anatomy of an Android application
Creating and deploying an application
Downloaded from FaaDoOEngineers.com
Why Android ?
Full phone software stack including applications
Designed as a platform for software development
Android is open
Android is free
Community support
Tool support
100% Java Phone
Downloaded from FaaDoOEngineers.com
Android – what is it?
software stack for mobile devices
incl. OS, middleware and key applications
Open source – source code is open and
contributions are welcome
application framework enabling
reuse/replacement of apps
integrated browser based on webkit
Downloaded from FaaDoOEngineers.com
Android – what is it?
Optimized graphics – 2D graphics library, 3D
based on OPEN GL ES
Media support (MPEG4, H.264, MP3, AAC,
JPG, PNG,…)
Support for radio interfaces, Bluetooth, WiFi,
Camera, GPS, accelerometer
Software Development Kit (SDK)
Preinstalled applications from Google (GMS)
Gmail, Maps, Search, Voice Search, Youtube
Downloaded from FaaDoOEngineers.com
Software Stack
Linux kernel
Libraries
Android run time
core libraries
Dalvik virtual machine
application layer
application protocol
Downloaded from FaaDoOEngineers.com
Android GUI
Java 1.5 support
GUI is fully written in Java
but it is not AWT / Swing
and neither J2ME LCDUI
Widget toolkit
XML based GUI
(Touch) screen
Might have a keyboard
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
Android applications are
compiled to Dalvik bytecode
Write app in Java
Compiled in Java
Transformed to Dalvik bytecode
Linux OS
Loaded into Dalvik VM
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
The Dalvik runtime is optimised
for mobile applications
Run multiple VMs
efficiently
Each app has its own VM
Minimal memory footprint
Downloaded from FaaDoOEngineers.com
Android Architecture
Downloaded from FaaDoOEngineers.com
Linux Kernel
• Works as a HAL
• Device drivers
• Memory management
• Process management
• Networking
Downloaded from FaaDoOEngineers.com
Libraries
• C/C++ libraries
• Interface through Java
• Surface manager – Handling UI Windows
• 2D and 3D graphics
• Media codecs, SQLite, Browser engine
Downloaded from FaaDoOEngineers.com
Android Runtime
• Dalvik VM
– Dex files
– Compact and efficient than class files
– Limited memory and battery power
• Core Libraries
– Java 5 Std edition
– Collections, I/O etc…
Downloaded from FaaDoOEngineers.com
Application Framework
• API interface
• Activity manager – manages application
life cycle.
Downloaded from FaaDoOEngineers.com
Applications
• Built in and user apps
• Can replace built in apps
Downloaded from FaaDoOEngineers.com
Application Framework
Rich, extensible set of Views apps can inclused lists, grids, text boxes, buttons,
web browser
Content Providers allows data access from other applications or share
own data
Resource Manager access to localized strings, graphics, layout files
Notification Manager enables custom alerts to be displayed in status bar
Activity Manager Manages lifecycle of applications and provides
navigation backstack
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
There is a common file structure
for applications
code
images
files
UI layouts
constants
Autogenerated
resource list
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
Standard components form building blocks for Android apps
Other applications
Has life-cycle
screen
App to handle content
Background app
Like music player
Views
manifest
Activity
Intents
Service
Notifications
ContentProviders
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
Android applications have
common structure Views such as
lists, grids, text
boxes, buttons,
and even an
embeddable web
browser
Content
Providers that
enable
applications to
access data from
other applications
(such as
Contacts), or to
share their own
data
A Resource Manager,
providing access to non-
code resources such as
localized strings,
graphics, and layout files
A Notification Manager
that enables all apps to
display custom alerts in the
status bar
An Activity Manager that
manages the life cycle of
applications and provides
a common navigation
backstack
Downloaded from FaaDoOEngineers.com Bruce Scharlau, University of Aberdeen, 2010
Android applications have
common structure Broadcast
receivers can
trigger intents that
start an application
Data storage
provide data for
your apps, and
can be shared
between apps –
database, file,
and shared
preferences
(hash map) used
by group of
applications
Services run in the
background and have
no UI for the user –
they will update data,
and trigger events
Intents specify what
specific action should be
performed
Activity is the presentation
layer of your app: there will
be one per screen, and the
Views provide the UI to the
activity
Downloaded from FaaDoOEngineers.com
Application Fundamentals
Activities application presentation layer
Services invisible components, update data sources, visible activities, trigger notifications
perform regular processing even when app is not active or invisible
Content Providers shareable data store
Intents message passing framework
broadcase messages system wide, for an action to be performed
Broadcast receivers consume intent broadcasts
lets app listen for intents matching a specific criteria like location
Notifications Toast notification
Status Bar Notification
Dialog notification
Downloaded from FaaDoOEngineers.com
Downloaded from FaaDoOEngineers.com
Applications
All apps (native and 3rd party) are written using
the same APIs and run on the same run time
executable
All apps have APIs for hardware access,
location-based services, support for
background services, map-based activities, 2D
and 3D graphics.
App Widgets are miniature app views that can
be embedded in other apps like Home Screen
Downloaded from FaaDoOEngineers.com
App Priority and Processes
Android apps do not have control over their own life cycles
Aggressively manages resources to ensure device responsiveness and kills process/apps when needed
Active Process – critical priority
Visible Process – high priority
Started Service Process
Background Process – low priority
Empty process
Downloaded from FaaDoOEngineers.com
Client apps
Developed using the Android SDK and installed on user devices
Compiled Java code, with data and resource – bundled by Android Asset Packaging tool (AAPT) into Android package or .apk
All applications have Android Manifest file in its root directory provides essential information about app
Could be installed directly on phone, but necessary to be distributed thru Market
Downloaded from FaaDoOEngineers.com
Web Apps
An alternative to standalone apps
Developed using web standards and
accessed through browser – nothing to
install on devices
Mixing client and web apps is also
possible – Client apps can embed web
pages using “Webview” in Android app
Downloaded from FaaDoOEngineers.com
SDK
Android APIs, Full Documentation and Sample code
Development tools Dalvik Debug Monitor Service (DDMS)
Android Debug Bridge (ADB)
Android Emulator
Online support and blog
Native Development Kit also available allows developers to implement parts of apps in native-
code languages like C/C++
Plug in available to use Eclipse integrated development environment
Developer forums and developer phones from Google, MOTO Dev studio from Motorola
Downloaded from FaaDoOEngineers.com
Android Market
Google Market - Part of GMS apps
3rd party apps submitted to Google, approved and distributed through Market
Both Free and Paid apps
Apps now limited to 50 MB; updates possible through Market
Monetization through ads available
Available in many countries, not all countries have support for paid apps
Other Market place applications available – Amazon has announced its own Android Market place
App searches filtered based on Manifest file (eg. if a device does not have trackball, apps using trackball will be filtered out)
Every app publishes a list of components the app will access and permissions need to be granted before installation
Apps installed on device and SD card (SD Card from Froyo)
Downloaded from FaaDoOEngineers.com
Search
Core feature in android
User should be able to search any data on device or internet
Usually one of the android buttons
Search suggestions based on recent queries
Provide custom search suggestions that match actual results in application data
system side Quick Search Box
Voice Search available and enhanced in recent releases
Downloaded from FaaDoOEngineers.com
Locations & Maps
Compelling and most popular apps for mobile devices
Google Maps provides free navigation
applications allowed access to location services supported by device
Google provides Maps external library
allows built-in downloading, rendering and caching of Maps tiles, and other display options and controls
Downloaded from FaaDoOEngineers.com
Device Administration
Froyo introduces support for enterprise
applications with Device Administraion
API
allows to create security-aware
applications to control employee devices
Apps might include
Email clients
remote wipe
device management services and apps
Downloaded from FaaDoOEngineers.com
Android Software Updates
Android 1.0 – G1
1.5 – Cupcake
1.6 – Donuts (CDMA support)
2.0 – Éclair (Droid introduced with Éclair)
2.2 – Froyo
2.3 Gingerbread (SDK released 2 weeks ago and source will follow soon)
API Levels used by apps to identify software version on the device
Android apps are generally forward compatible with newer version, but not necessarily backwards compatible
Downloaded from FaaDoOEngineers.com
Compatibility
Why? Allow customizable devices
Create Common eco system
Android compatibility is free and easy Obtain Android source code
Comply with Android Compatibility Definition (ACD) doc List requirements that need to be met for devices to be compatible with a
particular version on Android
Pass the Compatibility Test Suite (CTS) Automated test harness running on desktop, manages test exectuion
Test cases written, packaged as .apk to run on actual device or emulator
Porting guide available for bringing up Android on custom HW
Downloaded from FaaDoOEngineers.com
Other possibilities
Google TV - a new platform based on
Android
Tablets – Samsung Galaxy tab
introduced in Oct 2010
eBook reader – Latest Barnes and Noble
Nook is an Android tablet
Downloaded from FaaDoOEngineers.com
A real word example I
A translater for Android
You cannot read anything
If you are in a country where no one
understands your language
No aditional device needed
You have your mobile phone always
with you
Downloaded from FaaDoOEngineers.com
A real word example II
Uses the google translator
Can be extended with new languages
Adaptive GUI
Uses XMPP for data transmission
GUI fully defined in XML
Uses camera input and OCR
Downloaded from FaaDoOEngineers.com
Resources
http://www.android.com
http://http://androiddevelopers.blogspot.c
om
http://developer.motorola.com/
Downloaded from FaaDoOEngineers.com
Downloaded from FaaDoOEngineers.com
Thanks