1 android introduction based on slides made by mihail l. sichitiu and kesav kaliyaperumal and also...

23
1 Android Introduction Based on slides made by Mihail L. Sichitiu and Kesav Kaliyaperumal and also from wikipedia

Upload: dulcie-bradford

Post on 26-Dec-2015

218 views

Category:

Documents


4 download

TRANSCRIPT

1

Android Introduction

Based on slides made by Mihail L. Sichitiu and Kesav Kaliyaperumal

and also from wikipedia

2

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

Android OS

an open-source operating system based on the Linux kernel

designed primarily for touchscreen mobile devices such as smartphones and tablet computers

1 billion Android devices have been activated

48 billion apps have been installed

@2011 Mihail L. Sichitiu 4

Phones

HTC G1,Droid,Tattoo

Motorola Droid (X)

Suno S880 Samsung Galaxy Sony Ericsson

@2011 Mihail L. Sichitiu 5

Tablets

Velocity Micro Cruz Gome FlyTouch Acer beTouch

Dawa D7

Toshiba Android SmartBook

Cisco Android Tablet

6

Others

Watches

SmartTV

Google Glasses

Portable/CarDevices

@2011 Mihail L. Sichitiu 7

MarketShare

Feb’10 May’10 Apr’11

RIM 42.1% 41.7% 29%

Apple 25.4% 24.4% 25%

Google 9% 13% 33%

Microsoft 15.1% 13.2% 7.7%

Palm 5.4% 4.8% 2.9%

Now (November 2013): 80%

Android OS

Interface

Android's user interface is based on direct manipulation: using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching and reverse pinching to manipulate on-screen objects.

Android OS

Memory managementAndroid is designed to manage memory (RAM) to keep power consumption at a minimum, in contrast to desktop operating systems which generally assume they are connected to unlimited. When an Android app is no longer in use, the system will automatically suspend it in memory – while the app is still technically "open“.

Android OSMemory managementAndroid manages the apps stored in memory automatically: when memory is low, the system will begin killing apps and processes that have been inactive for a while, in reverse order since they were last used (i.e. oldest first). This process is designed to be invisible to the user, such that users do not need to manage memory or the killing of apps themselves.

Android 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

Linux Kernel and Storage Management

The flash storage on Android devices is split into several partitions, such as /system for the operating system itself, and /data for user data and application installations.

In contrast to desktop Linux, Android device owners are not given root access to the operating system and sensitive partitions such as /system are read-only. However, root access can be obtained by exploiting security flaws in Android.

Software Stack• Linux kernel• Libraries• Android run time

– core libraries– Dalvik virtual machine

• application layer• application protocol

Android Architecture

@2011 Mihail L. Sichitiu 15

Android S/W 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.

@2011 Mihail L. Sichitiu 16

Android S/W Stack – App 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.

@2011 Mihail L. Sichitiu 17

Android S/W Stack – App Framework (Cont)Features

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

@2011 Mihail L. Sichitiu 18

Android S/W Stack - Libraries

Including a set of C/C++ libraries used by components of the Android system

Exposed to developers through the Android application framework

@2011 Mihail L. Sichitiu 19

Android S/W Stack - Runtime

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

20

JVM

@2011 Mihail L. Sichitiu 21

Android S/W Stack – Runtime (Cont) 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

@2011 Mihail L. Sichitiu 22

Android S/W Stack – Runtime (Cont) 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

@2011 Mihail L. Sichitiu 23

Android S/W Stack – Linux Kernel

Relying on Linux Kernel 2.6 for core system services

Memory and Process Management

Network Stack

Driver Model

Security

Providing an abstraction layer between the H/W and the rest of the S/W stack