18
Android Process Management Rajesh prodduturi (113050076) Under the Guidance of Prof. D.B.phatak Department of Computer Science and Engineering, Indian Institute Of Technology , Bombay August 24, 2012 (Rajesh Prodduturi) Android Process Management August 24, 2012 1 / 18

Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Android Process Management

Rajesh prodduturi (113050076)

Under the Guidance ofProf. D.B.phatak

Department of Computer Science and Engineering,Indian Institute Of Technology , Bombay

August 24, 2012

(Rajesh Prodduturi) Android Process Management August 24, 2012 1 / 18

Page 2: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

INTRODUCTION

Outline

This presentation gives an overview of the following:

Application Fundamentals in Android

ActivityservicesBroadcast DriversContent Providers

Process Life Cycle in Android

Problem Statement

(Rajesh Prodduturi) Android Process Management August 24, 2012 2 / 18

Page 3: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Andriod is multi-user OS, each applicaiton has it’s own userid(because of security reasons)

Each applicaiton has it’s own VM(virtual machine), to provideisolation from other process.

Each applicaiton has it’s own process.

Application is a combination of components.

ActivityservicesBroadcast DriversContent Providers

(Rajesh Prodduturi) Android Process Management August 24, 2012 3 / 18

Page 4: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Application Components:

Activity

Acivity is a single visual user interface(UI) on the screen.Eg: List of applicaitons in home menu

Services

Services is a component which runs on background, but it is visibleuser.Eg: playing musicEg: Downloading a file from internet

(Rajesh Prodduturi) Android Process Management August 24, 2012 4 / 18

Page 5: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Application Components:

Content Providers

It provides a shared data for different applicaitons.Eg: contact information, calender information

Broadcast Reciever

It sends broadcast anouncements system-wideEg: screen-offEg: Battery low

Each applicaiton contains a manifest file, it holds list of componentsavailable in an applicaitons.

(Rajesh Prodduturi) Android Process Management August 24, 2012 5 / 18

Page 6: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Acivity Stack:

All the acivities in a system are placed in stack.

Whenever a new activity starts, i.e placed on top of stack.

whenever user press back button, activity on the top of stack wouldbe removed.

(Rajesh Prodduturi) Android Process Management August 24, 2012 6 / 18

Page 7: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Acivity Stack:

(Rajesh Prodduturi) Android Process Management August 24, 2012 7 / 18

Page 8: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Acivity LifeCycle:

source[1](Rajesh Prodduturi) Android Process Management August 24, 2012 8 / 18

Page 9: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Application Fundamentals in Android

Service LifeCycle:

source[1](Rajesh Prodduturi) Android Process Management August 24, 2012 9 / 18

Page 10: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Process lifecycle in Android

Android Process:

For each applicaiton android creates a new process with single threadof execution(i.e main thread)

By deafalut all the components run in same thread(main thread). Ifnot developer explicitly creates a new thread.

In low memory situations a process is decide to kill based upon thenumber of inactive components of that process.

A process which have more number of inactive components should bekilled first.

(Rajesh Prodduturi) Android Process Management August 24, 2012 10 / 18

Page 11: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Process lifecycle in Android

Foreground Process:

A process is treated as foreground if any of components of processholds following states.

An acivitiy which is interacting with user. When an acivity callsmethods like onstart(), onresume().

When a service is interacting with foreground acitvity.

When a service is started using startForeground().

when a service is executing any of the methods like onCreate(),onStart(), onDestroy().

(Rajesh Prodduturi) Android Process Management August 24, 2012 11 / 18

Page 12: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Process lifecycle in Android

Visible Process:

A process is treated as visible if any of components of process holdsfollowing states.

An acivitiy which is not interacting with user. But it is still visible touser, when an acivity running method like onPause().

When a service is interacting with visible acitvity.

Service Process:

A process is treated as Service if any of components of process holdsfollowing states.

When a service is started using startService().

Eg: playing music in background, downloading file from internet.

(Rajesh Prodduturi) Android Process Management August 24, 2012 12 / 18

Page 13: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Process lifecycle in Android

Background Process:

A process is treated as background if any of components of processholds following states.

When an acivity running method like onStop(). i.e currently user isnot interacting with that activity.

System maintains LRU list of background process.

Whenever a process decided to kill, it stores the state of activity. Sowhenever next user wants that activity, we can restore the previousstate of activity.

Empty Process:

A process is treated as Service if any of components of process holdsfollowing states.

When a process does not have any active component.

Caching of empty process inside memory, reduces relaunching ofapplicaiton once again if user wants that applicaiton in future.

(Rajesh Prodduturi) Android Process Management August 24, 2012 13 / 18

Page 14: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Problem Statement:

Objective:

Tunning minfree parameters of lowmemorykiller and dynamically changingoom adj values of process.

Effective memory usage

Improve speedness of system(i.e better performance)

Low power consumption

I am planing to implement a tool to support above features. It containsdifferent modes. Based upon the user interest he can choose any of themode.

(Rajesh Prodduturi) Android Process Management August 24, 2012 14 / 18

Page 15: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Mode 01 And 02:

Default Mode:

Based upon hardware configurations choose best set of minfree thresholds.The following factors will be considered.

Size of RAM

Footprint of OS

By using benchmarks we can decide minfree thresholds, which give betterperformance.User Specified Mode:

Provide different levels of minfree thresholds.

Large(aggressive)

Medium

small

User can choose one of the above levels based upon his/her interest.

(Rajesh Prodduturi) Android Process Management August 24, 2012 15 / 18

Page 16: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Mode 03,04 And 05:

partially User Interactive Mode:

In low memory situations, Whenever we need to kill a foreground, visibleand service process. This tool generates a notification message to user toselect which applicaiton he wants to kill.Without User Interaction Mode:

Estimate the users current interesting applicaiton, based upon his previouslog history. Do not kill frequently used applications.Dynamic Mode:

Dynamically choosing minfree thresholds level, based upon currentlyrunning applicaitons. Examples are given bellow

Database app, Browser - small

media player -medium

contacts,calender -large

(Rajesh Prodduturi) Android Process Management August 24, 2012 16 / 18

Page 17: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

REFERENCES I

http://developer.android.com/guide/components/processes-and-threads.html

(Rajesh Prodduturi) Android Process Management August 24, 2012 17 / 18

Page 18: Android Process Management - Kanwal Rekhi · ProcesslifecycleinAndroid Visible Process: A process is treated as visible if any of components of process holds following states. An

Thank You

(Rajesh Prodduturi) Android Process Management August 24, 2012 18 / 18