21-02-2011, 03:50 PM
presented by:
Ravi Soni
[attachment=8906]
ANDROID OS
What is Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
The Android SDK provides the tools and devices that includes an operating system, middleware and key applications. APIs necessary to begin developing applications on the Android platform using the Java programming language.
Developers can create applications for the platform using the Android SDK.
Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use, which runs on top of a Linux kernel.
Open Handset Alliance
On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, was unveiled with the goal to develop open standards for mobile devices.
Along with the formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, an open source mobile device platform based on the Linux operating system.
Features of Android OS
Application framework
Dalvik virtual machine
Integrated browser
Optimized graphics
SQLite
Media support
GSM Telephony
Bluetooth, EDGE, 3G, and WiFi
Camera, GPS, compass, and accelerometer
Rich development environment
Application Framework
Developers have full access to the same framework APIs used by the core applications.
The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities.
Underlying all applications is a set of services and systems, including Content Providers, Resource Manager, Notification Manager and An Activity Manager
Libraries
Android includes a set of C/C++ libraries used by various components of the Android system.
These capabilities are exposed to developers through the Android application framework.
Android Runtime
Android application runs in its own process, with its own instance of the Dalvik virtual machine.
The Dalvik VM is located in the Android Runtime.
Android gives an integrated tool “dx”, which converts generated byte code from .jar to .dex file, after this byte code becomes much more efficient to run on the small processors.
Linux Kernal
Android Architecture is based on Linux 2.6 kernel. It helps to manage security, memory management, process management, network stack and other important issues.
The user should bring Linux in his mobile device as the main operating system and install all the drivers required in order to run it.
Execution Environment
Android compilers do not operate on Java language code. Instead, the Android translators work on the resulting Java byte code emitted from a traditional Java compiler.
It’s possible to integrate existing Java source code, packages and libraries piecemeal.
The Dalvik Virtual Machine
The Dalvik virtual machine is an interpreter only machine optimized for use on low powered, low memory devices like phones.
Dalvik is not a Java virtual machine.
It uses its own bytecode format called “dex”.
Google claims this format allows battery power to be better-conserved at all different stages of execution of an application.
Lifecycle of an Android Application
In most cases, every Android application runs in its own Linux process.
This process is created for the application when some of its code needs to be run, and will remain running until it is no longer needed and the system needs to reclaim its memory for use by other applications.
Various process types are present like the foreground, visible, service, background and empty processes.
Security and Permissions in Android
Android is a multi-process system, where each application runs in its own process.
Most security between applications and the system is enforced at the process level through standard Linux facilities, such as user and group IDs that are assigned to applications.
Android mobile phone platform is going to be more secure than Apple’s iPhone or any other device in the long run
Development Tools
The Android SDK includes a variety of custom tools that help develop mobile applications on the Android platform. The most important of these are the Android Emulator and the Android Development Tools plugin for Eclipse, but the SDK also includes a variety of other tools for debugging, packaging, and installing are applications on the emulator