24-03-2011, 03:23 PM
presented by:
Chakravarthi Mannava
[attachment=10922]
Android OS
Yummy Desserts!
• Cupcake
• Donuts
• Éclair
• Frozen Yoghurt (Froyo)
• Gingerbread
• Honeycomb
What do these have in common?
Smartphone OS
• Symbian
• Windows Mobile
• RIM Blackberry OS
• Apple iOS
• Google Android
• Palm WebOS
• Windows Phone 7
Android OS
• Fastest growing mobile OS
• Over 300,000 Android activations a day
• Android overtook iOS as the dominant OS in US during 2H 2010
• First phone launched HTC G1 in 2008
• Currently an OS of choice for Motorola, HTC, Samsung, Sony Ericsson, among others
• Software updates every few months
Android – what is it?
• software stack for mobile devices
– incl. OS, middleware and key applications
• Open source – source code is open and contributions are welcome
• application framework enabling reuse/replacement of apps
• Dalvik virtual machine optimized for mobile
• integrated browser based on webkit
• Optimized graphics – 2D graphics library, 3D based on OPEN GL ES
• SQLite for data storage
• Media support (MPEG4, H.264, MP3, AAC, JPG, PNG,…)
• Support for radio interfaces, Bluetooth, WiFi, Camera, GPS, accelerometer
• Software Development Kit (SDK)
• Preinstalled applications from Google (GMS)
– Gmail, Maps, Search, Voice Search, Youtube
Software Stack
• Linux kernel
• Libraries
• Android run time
– core libraries
– Dalvik virtual machine
• application layer
• application protocol
Android Architecture
Android
• Google Maps and other GMS applications
• Background services and applications
– allows multi tasking of applications
• Shared Data and interprocess communication
• All applications are equal
– does not discriminate between native and non-native applications
– allows any applications to be enhanced/reused
• p2p interdevice application messaging
Dalvik VM
• All applications written in Java and converted to the dalvik executable .dex
• Every android app runs its own process, with its own instance of the dalvik virtual machine
• Not a traditional JVM, but a custom VM designed to run multiple instances efficiently on a single device
• VM uses linux kernel to handle low-level functionality incl. security, threading, process and memory management
Application Framework
• Rich, extensible set of Views
– apps can inclused lists, grids, text boxes, buttons, web browser
• Content Providers
– allows data access from other applications or share own data
• Resource Manager
– access to localized strings, graphics, layout files
• Notification Manager
– enables custom alerts to be displayed in status bar
• Activity Manager
– Manages lifecycle of applications and provides navigation backstack
Application Fundamentals
• Activities
– application presentation layer
• Services
– invisible components, update data sources, visible activities, trigger notifications
– perform regular processing even when app is not active or invisible
• Content Providers
– shareable data store
• Intents
– message passing framework
– broadcase messages system wide, for an action to be performed
• Broadcast receivers
– consume intent broadcasts
– lets app listen for intents matching a specific criteria like location
• Notifications
– Toast notification
– Status Bar Notification
– Dialog notification
Applications
• All apps (native and 3rd party) are written using the same APIs and run on the same run time executable
• All apps have APIs for hardware access, location-based services, support for background services, map-based activities, 2D and 3D graphics.
• App Widgets are miniature app views that can be embedded in other apps like Home Screen
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
Client apps
• Developed using the Android SDK and installed on user devices
• Compiled Java code, with data and resource – bundled by Android Asset Packaging tool (AAPT) into Android package or .apk
• All applications have Android Manifest file in its root directory
– provides essential information about app
• Could be installed directly on phone, but necessary to be distributed thru Market
Web Apps
• An alternative to standalone apps
• Developed using web standards and accessed through browser – nothing to install on devices
• Mixing client and web apps is also possible – Client apps can embed web pages using “Webview” in Android app
SDK
• Android APIs, Full Documentation and Sample code
• Development tools
– Dalvik Debug Monitor Service (DDMS)
– Android Debug Bridge (ADB)
– Android Emulator
• Online support and blog
• Native Development Kit also available
– allows developers to implement parts of apps in native-code languages like C/C++
– Plug in available to use Eclipse integrated development environment
• Developer forums and developer phones from Google, MOTO Dev studio from Motorola