Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
OS
     09BCE050
     Nitin Ramchandani
Introduction
What is Android?
 •   A software platform and operating system for mobile devices

 •   Based on the Linux kernel

 •   Developed by Google and later the Open Handset Alliance (OHA)

 •   Allows writing managed code in the Java language

 •   Possibility to write applications in other languages and compiling it to
     native code.

 •   At least 150,000 Application available in Android.

 •   It run on java based and object- Oriented based application
Android History
•Android Inc was founded in Oct 2003 by Andy
Rubin, Nick Sears, Chris White and Rich Miner.

•Google acquired it in august 2005.

•On November 5, 2007, the Open Handset
Alliance, a consortium of several companies which
include Broadcom Corporation, Google, HTC,
Intel, T-Mobile and Texas Instruments unveiled
itself.
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.




License

Android is under of the Apache Software License (ASL).
What is the Open Handset Alliance (OHA)?

   → It's a consortium of several companies
Android OS
Android
Architecture
Android OS
Linux Kernel
•Android is built on LINUX kernel, but it is not the
LINUX.

•No native windowing system(X window system)

•No glibc support

•Does not support all set of standard GNU
libraries
Why LINUX?

• Great memory and process management

• Great permissions based security model

• Proven driver model

• Support for shared libraries

• It’s already open source
• Power Management

  Based on the standard Linux Power Management,
  Android has its own component.

  •Application uses user space library to inform the
  framework about its constrains..
  •Constraints are implemented using lock
  mechanism..
PARTIAL_WAKE_LOCK
• CPU on, screen off, keyboard off
• Cannot power down via power button

SCREEN_DIM_WAKE_LOCK
• CPU on, screen dim, keyboard off

SCREEN_BRIGHT_WAKE_LOCK
• CPU on, screen bright, keyboard off

FULL_WAKE_LOCK
• CPU on, screen on, keyboard bright
Binder
•Driver to facilitate inter-process communication between applications
and services..
• A pool of threads is associated to each application to process
incoming IPC
•The driver performs mapping off object between two processes
•“Binder” uses an object reference as an address in a process’s memory
space
Libraries
• Media Libraries - based on PacketVideo's OpenCORE;
  the libraries support playback and recording of many
  popular audio and video formats, as well as static
  image files, including MPEG4, H.264, MP3, AAC,
  AMR, JPG, and PNG
• LibWebCore - a modern web browser engine
  which powers both the Android browser and an
  embeddable web view
• SGL - the underlying 2D graphics engine
• 3D libraries - an implementation based on
  OpenGL ES 1.0 APIs; the libraries use either
  hardware 3D acceleration (where available) or
  the included, highly optimized 3D software
  rasterizer
• FreeType - bitmap and vector font rendering
• SQLite - a powerful and lightweight relational
  database engine available to all applications
Surface manager
Provides a system-wide surface “composer” to render
all the surfaces in a frame buffer
 •Can combined 2D and 3D surfaces
 •Can use OpenGL ES and 2D hardware accelerator for its
 compositions
Audio Manager

•Handle several types of devices (headphone,
ear piece…)

•Redirects audio stream to the specified output
Hardware Abstraction Libraries

Defines the interface that Android requires
hardware “drivers” to implement.

•Set of standardized APIs the developer will have to
implement
•Available for all the components a manufacturer can
integrate on its Android platform
Android Runtime
Dalvik VM
• Designed for embedded environment
• Supports multiple VM processes
per device.
• Highly CPU-optimized byte code
interpreter.
• Uses run time memory very efficiently.
• Run optimized file format(.dex) Dalvik bytecode.
• Java .class/.jar are converted to .dex at build time.
Core Libraries
• Android includes a set of core libraries that
  provides most of the functionality available in
  the core libraries of the Java programming
  language
Application Framework




•A Notification Manager that enables all
applications to display custom alerts in the status
bar
•An Activity Manager that manages the lifecycle of
applications and provides a common navigation
backstack
• A rich and extensible set of Views that can be used
  to build an application, including 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
Applications


• Built in and user apps
• Can replace built in apps
Application Lifecycle

• In android every application runs in their
  own process.
• Processes are started or stopped as needed
  to run application components.
• A process may be killed to reclaim resources.
Android OS
Android OS
Android OS
Android OS
Android OS
Android OS
Android OS
Android Startup
•Similar to most Linux-based systems at
startup, the boot-loader loads the Linux
kernel and starts the init process
Init starts Linux daemons, including:
• USB Daemon (usbd) to manage USB
connections
• Android Debug Bridge (adbd) to manage ADB
connections
• Debugger Daemon (debuggerd) to manage
debug processes requests (dump memory,
etc.)
• Radio Interface Layer Daemon (rild) to
manage communication with the radio Init
usbd
Init process starts the zygote process:
• A nascent process which initializes a Dalvik VM
instance
• Loads classes and listens on socket for requests to
spawn VMs
• Forks on request to create VM instances for
managed processes
• Copy-on-write to maximize re-use and minimize
footprint
•Init starts runtime process:
• Initializes Service Manager – the context manager
for Binder that handles service registration and
lookup
• Registers Service Manager as default context
manager for Binder services
•Runtime process sends request for Zygote
to start System Service
Runtime process sends request for Zygote to start
System Server
• Zygote forks a new VM instance for the System
Service process and starts the service
System Service starts the native system
servers, including:
     • Surface Flinger
`    • Audio Flinger
•Native system servers register with Service
Manager as IPC service targets:
•System Service starts the Android managed services
Android managed Services register with Service Manager:
Android OS
•After system server loads all services, the system is ready
Android OS
Android OS
•Each subsequent application is launched in itʼ s own process
Activity
 cycle
Android OS
• onCreate(Bundle): This is called when the activity first
starts up.

•onStart( ): This indicates the activity is about to be
displayed to the user.

• onResume( ): This is called when your activity can start
interacting with the user. This is a good place to start
animations and music.
• onPause( ): This runs when the activity is about to go
into the background, usually because another activity has
been launched in front of it. This is where you should save
your program’s persistent
state, such as a database record being edited.
• onStop( ): This is called when your activity is no longer
visible to the user and it won’t be needed for a while. If
memory is tight, onStop( ) may never be called (the system
may simply terminate your process).

• onRestart( ): If this method is called, it indicates your
activity is being redisplayed to the user from a stopped state.

• onDestroy( ): This is called right before your activity is
destroyed. If memory is tight, onDestroy( ) may never be
called (the system may simply terminate your process).
.
•onSaveInstanceState(Bundle): Android will call this
method to allow the activity to save per-instance state,
such as a cursor position within a text field. Usually you
won’t need to override it because the default
implementation saves the state for all your user interface
controls automatically.
• onRestoreInstanceState(Bundle): This is called when
the activity is being reinitialized from a state previously
saved by the onSaveInstanceState( ) method. The default
implementation restores the state of your user interface.
Android
    v/s
other Mobile
     os
Apple
  v/s
Android
•   The Apple iPhone comes with an expansive set of applications,
    available for free or for a small fee; the Google Android comes with a
    smaller package of applications.

•   The Apple iPhone comes with a feature to alert the user of any
    missed instances, though this feature forces the user to prematurely
    end whatever action he is performing; the Google Android comes with
    a drag and drop screen that alerts the user of any occurrences ,but
    allows him to continue his actions.

•    Apple controls all of its hardware, and it is therefore simple to perform
    the necessary accessory maintenance; Google’s Android is simply a
    platform that functions on different platforms, and doesn’t allow for
    easy accessory support.
Android
  v/s
syMbiAn
1. Android is fairly new and has a smaller market share
   than the older Symbian

3. Android is designed around touch capable devices while
   Symbian is designed around keypad devices

5. Symbian is somewhat outdated while Android is
   constantly updated

7. Android is used by many phone manufacturers while
   Symbian is almost exclusive to Nokia.
Android
    v/s
blAckberry
1. Android smartphones are more apps-centered while
   BlackBerry smartphones cater more to business.
2. BlackBerry has a good security system while the
   Android’s is questionable.
3. Android has plenty of apps that appeal to the geekier
   nature while BlackBerry was created for the business
   people in the corporate world.
4. BlackBerry was the pioneering smartphone. Android
   just followed through.
5. BlackBerry was first in email transferring while Android
   was the first in customizing.
Android OS
1. Windows Mobile is from Microsoft while Android was
   developed by Google.
2. Windows Mobile is proprietary while Android is open
   source.
3. Windows Mobile is relatively old and pretty established
   while the Android is pretty new.
4. There are a lot of phones that uses Windows Mobile
   while there are only a handful running Android.
5. There are a lot more programs available for Windows
   Mobile compared to Android.
Android OS
Android OS
Building Blocks

•   Activities
•   Intent
•   Services
•   Content providers
Activities

•Activity is an User Interface Screen.
•An application may have two or more activities to
handle different phases of program.
For e.g. opening page, menu page, etc
•Activity is responsible for saving its own state so
that it can be restored later as part of the
application life cycle.
Intents

•Intent is a mechanism for describing a specific action
such as pick a photo.
•Basically we register a activity to handle a Intent.


Content Provider
•A content provider is a set of data wrapped up in a
custom API to read and write it. This is the best way
to share global data between applications.
•Google provide content provider for contacts.
Services
•A service is a task that runs in the background without
the user’s direct interaction, similar to a Unix daemon.


For e.g. we can have Music player program playing in
background even if we are browsing other programs.
thAnk you

More Related Content

Android OS

  • 1. OS 09BCE050 Nitin Ramchandani
  • 2. Introduction What is Android? • A software platform and operating system for mobile devices • Based on the Linux kernel • Developed by Google and later the Open Handset Alliance (OHA) • Allows writing managed code in the Java language • Possibility to write applications in other languages and compiling it to native code. • At least 150,000 Application available in Android. • It run on java based and object- Oriented based application
  • 3. Android History •Android Inc was founded in Oct 2003 by Andy Rubin, Nick Sears, Chris White and Rich Miner. •Google acquired it in august 2005. •On November 5, 2007, the Open Handset Alliance, a consortium of several companies which include Broadcom Corporation, Google, HTC, Intel, T-Mobile and Texas Instruments unveiled itself.
  • 4. 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. License Android is under of the Apache Software License (ASL).
  • 5. What is the Open Handset Alliance (OHA)? → It's a consortium of several companies
  • 9. Linux Kernel •Android is built on LINUX kernel, but it is not the LINUX. •No native windowing system(X window system) •No glibc support •Does not support all set of standard GNU libraries
  • 10. Why LINUX? • Great memory and process management • Great permissions based security model • Proven driver model • Support for shared libraries • It’s already open source
  • 11. • Power Management Based on the standard Linux Power Management, Android has its own component. •Application uses user space library to inform the framework about its constrains.. •Constraints are implemented using lock mechanism..
  • 12. PARTIAL_WAKE_LOCK • CPU on, screen off, keyboard off • Cannot power down via power button SCREEN_DIM_WAKE_LOCK • CPU on, screen dim, keyboard off SCREEN_BRIGHT_WAKE_LOCK • CPU on, screen bright, keyboard off FULL_WAKE_LOCK • CPU on, screen on, keyboard bright
  • 13. Binder •Driver to facilitate inter-process communication between applications and services.. • A pool of threads is associated to each application to process incoming IPC •The driver performs mapping off object between two processes •“Binder” uses an object reference as an address in a process’s memory space
  • 14. Libraries • Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • 15. • SGL - the underlying 2D graphics engine • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer • FreeType - bitmap and vector font rendering • SQLite - a powerful and lightweight relational database engine available to all applications
  • 16. Surface manager Provides a system-wide surface “composer” to render all the surfaces in a frame buffer •Can combined 2D and 3D surfaces •Can use OpenGL ES and 2D hardware accelerator for its compositions
  • 17. Audio Manager •Handle several types of devices (headphone, ear piece…) •Redirects audio stream to the specified output
  • 18. Hardware Abstraction Libraries Defines the interface that Android requires hardware “drivers” to implement. •Set of standardized APIs the developer will have to implement •Available for all the components a manufacturer can integrate on its Android platform
  • 19. Android Runtime Dalvik VM • Designed for embedded environment • Supports multiple VM processes per device. • Highly CPU-optimized byte code interpreter. • Uses run time memory very efficiently. • Run optimized file format(.dex) Dalvik bytecode. • Java .class/.jar are converted to .dex at build time.
  • 20. Core Libraries • Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language
  • 21. Application Framework •A Notification Manager that enables all applications to display custom alerts in the status bar •An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack
  • 22. • A rich and extensible set of Views that can be used to build an application, including 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
  • 23. Applications • Built in and user apps • Can replace built in apps
  • 24. Application Lifecycle • In android every application runs in their own process. • Processes are started or stopped as needed to run application components. • A process may be killed to reclaim resources.
  • 32. Android Startup •Similar to most Linux-based systems at startup, the boot-loader loads the Linux kernel and starts the init process
  • 33. Init starts Linux daemons, including: • USB Daemon (usbd) to manage USB connections • Android Debug Bridge (adbd) to manage ADB connections • Debugger Daemon (debuggerd) to manage debug processes requests (dump memory, etc.) • Radio Interface Layer Daemon (rild) to manage communication with the radio Init usbd
  • 34. Init process starts the zygote process: • A nascent process which initializes a Dalvik VM instance • Loads classes and listens on socket for requests to spawn VMs • Forks on request to create VM instances for managed processes • Copy-on-write to maximize re-use and minimize footprint
  • 35. •Init starts runtime process: • Initializes Service Manager – the context manager for Binder that handles service registration and lookup • Registers Service Manager as default context manager for Binder services
  • 36. •Runtime process sends request for Zygote to start System Service
  • 37. Runtime process sends request for Zygote to start System Server • Zygote forks a new VM instance for the System Service process and starts the service
  • 38. System Service starts the native system servers, including: • Surface Flinger ` • Audio Flinger
  • 39. •Native system servers register with Service Manager as IPC service targets:
  • 40. •System Service starts the Android managed services
  • 41. Android managed Services register with Service Manager:
  • 43. •After system server loads all services, the system is ready
  • 46. •Each subsequent application is launched in itʼ s own process
  • 49. • onCreate(Bundle): This is called when the activity first starts up. •onStart( ): This indicates the activity is about to be displayed to the user. • onResume( ): This is called when your activity can start interacting with the user. This is a good place to start animations and music. • onPause( ): This runs when the activity is about to go into the background, usually because another activity has been launched in front of it. This is where you should save your program’s persistent state, such as a database record being edited.
  • 50. • onStop( ): This is called when your activity is no longer visible to the user and it won’t be needed for a while. If memory is tight, onStop( ) may never be called (the system may simply terminate your process). • onRestart( ): If this method is called, it indicates your activity is being redisplayed to the user from a stopped state. • onDestroy( ): This is called right before your activity is destroyed. If memory is tight, onDestroy( ) may never be called (the system may simply terminate your process). .
  • 51. •onSaveInstanceState(Bundle): Android will call this method to allow the activity to save per-instance state, such as a cursor position within a text field. Usually you won’t need to override it because the default implementation saves the state for all your user interface controls automatically. • onRestoreInstanceState(Bundle): This is called when the activity is being reinitialized from a state previously saved by the onSaveInstanceState( ) method. The default implementation restores the state of your user interface.
  • 52. Android v/s other Mobile os
  • 54. The Apple iPhone comes with an expansive set of applications, available for free or for a small fee; the Google Android comes with a smaller package of applications. • The Apple iPhone comes with a feature to alert the user of any missed instances, though this feature forces the user to prematurely end whatever action he is performing; the Google Android comes with a drag and drop screen that alerts the user of any occurrences ,but allows him to continue his actions. • Apple controls all of its hardware, and it is therefore simple to perform the necessary accessory maintenance; Google’s Android is simply a platform that functions on different platforms, and doesn’t allow for easy accessory support.
  • 56. 1. Android is fairly new and has a smaller market share than the older Symbian 3. Android is designed around touch capable devices while Symbian is designed around keypad devices 5. Symbian is somewhat outdated while Android is constantly updated 7. Android is used by many phone manufacturers while Symbian is almost exclusive to Nokia.
  • 57. Android v/s blAckberry
  • 58. 1. Android smartphones are more apps-centered while BlackBerry smartphones cater more to business. 2. BlackBerry has a good security system while the Android’s is questionable. 3. Android has plenty of apps that appeal to the geekier nature while BlackBerry was created for the business people in the corporate world. 4. BlackBerry was the pioneering smartphone. Android just followed through. 5. BlackBerry was first in email transferring while Android was the first in customizing.
  • 60. 1. Windows Mobile is from Microsoft while Android was developed by Google. 2. Windows Mobile is proprietary while Android is open source. 3. Windows Mobile is relatively old and pretty established while the Android is pretty new. 4. There are a lot of phones that uses Windows Mobile while there are only a handful running Android. 5. There are a lot more programs available for Windows Mobile compared to Android.
  • 63. Building Blocks • Activities • Intent • Services • Content providers
  • 64. Activities •Activity is an User Interface Screen. •An application may have two or more activities to handle different phases of program. For e.g. opening page, menu page, etc •Activity is responsible for saving its own state so that it can be restored later as part of the application life cycle.
  • 65. Intents •Intent is a mechanism for describing a specific action such as pick a photo. •Basically we register a activity to handle a Intent. Content Provider •A content provider is a set of data wrapped up in a custom API to read and write it. This is the best way to share global data between applications. •Google provide content provider for contacts.
  • 66. Services •A service is a task that runs in the background without the user’s direct interaction, similar to a Unix daemon. For e.g. we can have Music player program playing in background even if we are browsing other programs.

Editor's Notes

  1. Home process saves its status. Mail is opened.
  2. Particular mail(message) is opened from inbox. Mail’s state is saved.
  3. By following link in mail we open it and browser application get started. Message state is saved.
  4. Now we want to start another map process but memory is full, so one process need to be killed from system process as Browser is recently opened process and we need home process for navigation. Mail process is best choice to kill. So we kill it and save Browser process state.
  5. Map process get started.
  6. When we go back mail process again created through instance saved in system process.
  7. kernel the kernel boots core kernel initialization memory and I/O areas are initialized interrupts are started, and the process table is initialized driver initialization kernel daemons (threads) are started root file system is mounted the first user-space process is started usually /init (note that other Linux systems usually start /sbin/init)
  8. /init processes /init.rc and /init.<machine_name>.rc dalvik VM is started (zygote). See Android Zygote Startup several daemons are started: 1-rild - radio interface link daemon 2-vold - volume daemon (media volumes, as in file systems - nothing to do with audio volume) ADB ADB (Android Debug Bridge) is a tool that comes with the Android SDK that allows you to control and interface with your Android device. It is located in the tools folder when you unpack the SDK.
  9. 1- init runs the C++ program /system/bin/app_process, and gives the resulting process the name "zygote"