You are on page 1of 37

Outlines

1. Introduction 2. Platform 3. Process Scheduling 4. Software development & SDK 5. Overall evaluation

What is Android?
A complete software stack for mobile devices. Android is
A first joined project of the Open Handset Alliance (OHA).
Its a First open, complete and free platform Its Software stack is open-sourced and licensed under Apache 2.0 In Android Source code will be available to everyone and anyone will have the

capability to built an image

The Android platform


includes an operating system, a middleware and some applications. Android is very Lightweight and fully 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
3

Introduction
What is the Open Handset Alliance (OHA)?

It's a consortium of several companies

Introduction

What is the Open Handset Alliance (OHA)?


Devoted to advancing open standards for mobile

devices
Develop technologies that will significantly lower

the cost of developing and distributing mobile devices and services

Versions
Name Cupcake Donut Eclair Froyo Gingerbread Honeycomb Icecream Version 1.5 1.6 2.1 2.2 2.3

Versions
The most recent released versions of Android are: 2.0/2.1 (Eclair), which revamped the user interface and introduced HTML5 and Exchange ActiveSync 2.5 support 2.2 (Froyo), which introduced speed improvements with JIT optimization and the Chrome V8 JavaScript engine 2.3 (Gingerbread), which refined the user interface, improved the soft keyboard and copy/paste features, and added support for Near Field Communication 3.0 (Honeycomb), a tablet-oriented release which supports larger screen devices and introduces many new user interface features, and supports multicore processors and hardware acceleration for graphics.[The upcoming version of Android is: Ice Cream Sandwich,[a combination of Gingerbread and Honeycomb into a "cohesive whole,"with a possible release in mid-2011.

Smart phone market

Platform

Operating System
Android uses Linux for its device drivers, memory management, process management, and networking. The next level up contains the Android native libraries. They are all written in C/C++ internally, but youll be calling them through Java interfaces. In this layer you can find the Surface Manager, 2D and 3D graphics, Media codecs, the SQL database (SQLite), and a native web browser engine (WebKit). Dalvik Virtual Machine. Dalvik runs dex files, which are converted at compile time from standard class and jar files.

Platform

Network Connectivity
It supports wireless communications using:

GSM mobile-phone technology 3G Edge 802.11 Wi-Fi networks

10

Android has many components

11

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 An Activity Manager that manages the life cycle of applications and provides a common navigation backstack

A Notification Manager that enables all apps to display custom alerts in the status bar
A Resource Manager, providing access to noncode resources such as localized strings, graphics, and layout files
12

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 Activity is the presentation layer of your app: there will be one per screen, and the Views provide the UI to the activity Intents specify what specific action should be performed Services run in the background and have no UI for the user they will update data, and trigger events
13

There is a common file structure for applications

code
files images UI layouts

Autogenerated resource list

constants

14

Intent provides late running binding to other apps


It can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.

Written as action/data pairs such as: VIEW_ACTION/ACTION content://contacts/1

15

Services declared in the manifest and provide support


Services run in the background: Music player providing the music playing in an audio application

Intensive background apps, might need to spawn their own thread so as to not block the application
16

Notifications let you know of background events

This way you know that an SMS arrived, or that your phone is ringing, and the MP3 player should pause

17

Content Providers share data


You need one if your application shares data with other applications This way you can share the contact list with the IM application If you dont need to share data, then you can use SQLlite database

18

UI layouts are in Java and XML

setContentView(R.layout.hello_activity); //will load the XML UI file


19

Security in Android follows standard Linux guidelines


Each application runs in its own process Process permissions are enforced at user and group IDs assigned to processes

Finer grained permissions are then granted (revoked) per operations


<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" > <uses-permission id="android.permission.RECEIVE_SMS" /> </manifest>
20

Performance

21

Android Runtime

22

Platform initialization

23

Priorities: Android 2.2 Scheduling


Static priority The maximum size of the time slice a process should be allowed before being forced to allow other processes to compete for the CPU. Dynamic priority The amount of time remaining in this time slice; declines with time as long as the process has the CPU. When its dynamic priority falls to 0, the process is marked for rescheduling. Real-time priority Only real-time processes have the real-time priority. Higher real-time values always beat lower values
24

Android process priority is dynamic. Scheduler increases/decreases the priority.

Android Scheduling
Process Selection
A processs scheduling class defines which algorithm to apply

most deserving process is selected by the scheduler real time processes are given higher priority than ordinary processes when several processes have the same priority, the one nearest the front of

the run queue is chosen


when a new process is created the number of ticks left to the parent is split

in two halves, one for the parent and one for the child
priority and counter fields are used both to implement time-sharing and

to compute the process dynamic priority


25

Android makes mobile Java easier

Well, sort of

26

Android applications are written in Java


package com.google.android.helloactivity;
import android.app.Activity; import android.os.Bundle;

public class HelloActivity extends Activity { public HelloActivity() { } @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.hello_activity); } }
27

Android applications are compiled to Dalvik bytecode


Write app in Java Compiled in Java

Transformed to Dalvik bytecode

Loaded into Dalvik VM

Linux OS

28

Android has a working emulator

29

Software development

Development requirements
Java Android SDK Eclipse IDE (optional)

30

Software development (Contd..)


IDE and Tools
Android SDK Class Library Developer Tools dx Dalvik Cross-Assembler aapt Android Asset Packaging Tool adb Android Debug Bridge ddms Dalvik Debug Monitor Service Emulator and System Images Documentation and Sample Code Eclipse IDE + ADT (Android Development Tools) Reduces Development and Testing Time Makes User Interface-Creation easier Makes Application Description Easier

31

Overall evaluation
Advantages
There are a host of advantages that Googles Android will derive from being an open source software. Some of the advantages include: The ability for anyone to customize the Google Android platform The consumer will benefit from having a wide range of mobile applications to choose from since the monopoly will be broken by Google Android

We will be able to customize a mobile phones using Google Android platform like never before
Features like weather details, opening screen, live RSS feeds and even the icons on the opening screen will be able to be customized In addition the entertainment functionalities will be taken a notch higher by Google Android being able to offer online real time multiplayer games

32

Overall evaluation
Limitations
Bluetooth limitations o Android doesn't support: Bluetooth stereo Contacts exchange Modem pairing Wireless keyboards But it'll work with Bluetooth headsets, but that's about it Firefox Mobile isn't coming to Android Apps in Android Market need to be programmed with a custom form of Java Mozilla and the Fennec won't have that

33

Platform
Future possibilities
Google Android Sales to Overtake iPhone in 2012 The OHA is committed to make their vision a reality: to deploy the Android platform for every mobile operator, handset manufacturers and developers to build innovative devices Intel doesnt want to lose ownership of the netbook market, so they need to prepare for anything, including Android

Fujitsu launched an initiative to offer consulting and engineering expertise to help run Android on embedded hardware, which aside from cellphones, mobile internet devices, and portable media players, could include GPS devices, thinclient computers and set-top boxes.
More Android devices are coming and some will push the envelope even further

34

Conclusion
We can only hope that the next versions of

Android have overcome the actual limitations and that the future possibilities became a reality There are lots of sources of information
The sdk comes with the API references, sample

applications and lots of docs Blog http://android-developers.blogspot.com/ which has lots of useful examples, details There is http://www.anddev.org

35

QUESTIONS?

36

THANK YOU!

37

You might also like