Tuesday 23 April 2013

Android Architecture



Linux Kernel
Android OS is built on top of the Linux 2.6 Kernel
–Linux Core functionality
•Memory management
•Process management
•Networking
•Security settings
–Hardware drivers

Android’s native libraries
–Libc: c standard lib.
–SSL: Secure Socket Layer
–SGL: 2D image engine
–OpenGL|ES: 3D image engine
–Media Framework: media codecs
–SQLite: Database engine
–WebKit: Kernel of web browser
–FreeType: Bitmap and Vector
–SufraceManager: Compose window manager with off-screen buffering.

Android Runtime
Core Libraries
Provides the functionality of the JAVA Programming Language
Dalvik VM
A type of Java Virtual Machine
Register based (not stack machine like JVM)
Optimization for low memory requirements
Executes .dex (Dalvik-Executable) files instead of .class
DX tool converts classes to .dex format

Application Framework
•The blocks that our applications directly interact with.
•Important blocks:
–Activity Manager: Manages the activity life cycle of applications
–Content Providers: Manage the data sharing between applications
–Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
–Location Manager: Location management, using GPS or cell tower
–Resource Manager: Manage the various types of resources we use in our Application

Applications
•This is where our applications are placed.
•Some pre-installed applications:
–SMS client app
–Dialer
–Web browser
–Contact manager
•As developers, we are able to write an app which replaces any existing system app.