14 MAY 2011 MVJ College Of Engineering Android Overview Badrinath Kulkarni Member, The Bangalore Android User Group [ B.A.U.G ]
What is Android ?
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
It is an open-source project from
“ Open Handset Alliance(OHA)” led by Google.
Source at - http://android.git.kernel.org/ 14 MAY 2011 MVJ College Of Engineering
Open Handset Alliance(OHA)
The Open Handset Alliance ( OHA ) is a business alliance of >79 firms for developing open standards for mobile devices.
The OHA was established on 5 November 2007, led by Google.
OHA includes mobile handset makers, application developers, mobile carriers and chip makers.
Android, the flagship software of the alliance, is based on an open source license and competes against mobile platforms from Apple, Microsoft, Nokia, Palm, Research In Motion, Symbian, and Bada.
14 MAY 2011 MVJ College Of Engineering
July 2005 : Google acquired Android Inc.
5 Nov 2007 :
Open Handset Alliance formed-Google, HTC, Intel, Motorola, Qualcomm , T-Mobile etc.
Android is the first product of OHA.
12 Nov 2007 : OHA released a preview of the Android OHA
14 MAY 2011 MVJ College Of Engineering
Architecture 14 MAY 2011 MVJ College Of Engineering
All applications are written using the Java language.
Ex : Email Client , SMS Program , Calendar, Browser , Contacts
14 MAY 2011 MVJ College Of Engineering Component Description Activity UI component typically corresponding to a screen. E.g. Contacts: 3 activities: View contacts, Send message, Edit contact Service Background process without UI. Ex : Messages can be sent/received , mp3 player Content Provider Enables applications to share data Ex : Contacts are provided to all applications. Broadcast Receiver Responds to external events, can wake up your process Ex : Phone rings, network activity established, time controlled tasks
Application Framework 14 MAY 2011 MVJ College Of Engineering 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 string, graphics, and layout files) Notification Manager Enabling all applications to display customer alerts in the status bar
Libraries 14 MAY 2011 MVJ College Of Engineering Library Description System C library A BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices Media Libraries Based on Packet Video's Open CORE; 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. (Now Stagefright ) Surface Manager It manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications 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 FreeType A bitmap and vector font rendering SQLite A powerful and lightweight relational database engine available to all applications
Android Runtime 14 MAY 2011 MVJ College Of Engineering Library Description Core library Provides most of the functionality available in the core libraries of the Java language. APIs : Data Structures , Utilities , File Access , Network Access , Graphics , Etc Dalvik Virtual Machine ( DVM )
Register-based virtual machine
Providing environment on which every Android application runs
Each Android application runs in its own process, with its own instance of the DVM.
Dalvik has been written so that a device can run multiple VMs efficiently.
.dex format is optimized for minimal memory footprint.
Relying on Linux Kernel 2.6 for core system services
Memory and Process Management
Providing an abstraction layer between the H/W and the rest of the S/W stack