• “Android is a software stack for mobile devices that includes an operating system, middleware and key applications”
• Android uses Linux for its device drivers,
memory management, process management, and networking.
• The next level up contains the Android native libraries. They are all written in C/C++ internally, but you’ll be calling them through Java interfaces. In this layer you can find the Surface Manager, 2D and 3D graphics, Media codecs, the SQL database (SQLite), and a native web browser engine (WebKit).
• Dalvik Virtual Machine. Dalvik runs dex files, which are converted at compile time from standard class and jar files.
Android Platform :Android Platform :
• Cellular networking : GSM, EDGE, 3G (hardware dependent)
• LAN : Bluetooth, and Wi-Fi (hardware dependent)
• Graphics Hardware Acceleration• Camera, GPS and Compass (hardware
dependent)• Touch screen and accelerometer for motion
sensing
Hardware which are supported :Hardware which are supported :
@2011 Mihail L. Sichitiu 5
• A business alliance consisting of 47 companies to develop open standards for mobile devices
@2011 Mihail L. Sichitiu 7
• Android provides a set of core applications: Email Client SMS Program Calendar Maps Browser Contacts Etc
• All applications are written using the Java language.
@2011 Mihail L. Sichitiu 8
• FeaturesFeature 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 strings, graphics, and layout files)
Notification Manager
Enabling all applications to display customer alerts in the status bar
Activity Manager
Managing the lifecycle of applications and providing a common navigation backstack
@2011 Mihail L. Sichitiu 9
• Including a set of C/C++ libraries used by components of the Android system
• Exposed to developers through the Android application framework
@2011 Mihail L. Sichitiu 10
• Dalvik Virtual Machine Providing environment on which every Android
application runsEach Android application runs in its own process, with its
own instance of the Dalvik VM.Dalvik has been written such that a device can run
multiple VMs efficiently.
Register-based virtual machine
@2011 Mihail L. Sichitiu 11
• Dalvik Virtual Machine (Cont) Executing the Dalvik Executable (.dex) format
.dex format is optimized for minimal memory footprint.Compilation
Relying on the Linux Kernel for:ThreadingLow-level memory management
@2011 Mihail L. Sichitiu 12
Relying on Linux Kernel 2.6 for core system services
Memory and Process Management
Network Stack
Driver Model
Security
Providing an abstraction layer between the H/W and the rest of the S/W stack
• Application Framework• Dalvik virtual machine• Integrated (webkit) browser• 2D and 3D graphics APIs with HW• SQLite• Video and audio codecs• Bluetooth, EDGE, 3G, and WiFi• Camera, GPS, compass, and accelerometer
• Java• Android SDK• Eclipse IDE(optional)• Android SDK has:
• Class Library• Developer Tools
dx – Dalvik Cross-Assembleraapt – Android Asset Packaging Tooladb – Android Debug Bridgeddms – Dalvik Debug Monitor Service
• Emulator and System Images • Documentation and Sample Code
Software Development Requires :Software Development Requires :
• CPU typically runs 500-600 Mhz• RAM available to an App may only be a few
megabytes• Disk (flash) access is very slow• Lifecycle - apps must pause/quit often, and restore to
give the illusion that they are always running• UI design
o typical screen may be HVGA (320x480)o may be in portrait or landscapeo very high DPI - small text may not be readableo touch resolution is very low (~25 pixel)
• Network access may be slow and (very) intermittent
• Ability to customize the Google Android platform
• Wide range of mobile applications to choose.
• Features like weather details, opening screen, live RSS feeds and many more.
• Entertainment functionalities will be taken a notch higher by Google Android being able to offer online real time multiplayer games.
Advantages :Advantages :
• We can only hope that the next versions of Android have overcome the actual limitations and that the future possibilities became a reality
Conclusion :Conclusion :