SEMINAR ON
ANDROID
OPERATING SYSTEM
Submitted by,
Vishnu M.S
No : 42
S7 CS
C E A L
ABSTRACT
Android is a software stack for mobile devices
that includes an operating system, middleware and key applications. It can be considered as a software platform as well as an operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance. It allows developers to write managed code in a Java-like language that utilizes Google-developed Java libraries.
that includes an operating system, middleware and key applications. It can be considered as a software platform as well as an operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance. It allows developers to write managed code in a Java-like language that utilizes Google-developed Java libraries.
The android architecture consists of key applications, application framework, core libraries, android runtime and a Linux kernel. The main features of android applications are which have an integrated browser, SQLite for data storage, support for common audio, video formats and it has GSM, EDGE, 3G and Wi-Fi connectivity etc
An android application consists of four important parts. They are Activity, Intent receiver, services and content provider. There are some application development tools like Eclipse for the android phones. Google also develop emulator of android phone. Which help the application developers to run the application without an android phone. Many versions of android operating system are available like Gingerbread, Honeycomb, Froyo etc. the latest one is ‘Ice Cream Sandwich’ ie, Android4.0 . The development of android made a boom in the mobile technology field.
OVERVIEW
- INTRODUCTION TO ANDROID
1.1 Open HANDSET ALLIANCE
- FEATURES
2.1 dalvik virtual machine
2.2 integrated browser
2.3 SQLIT
2.4 CONNECTIVITY
2.5 MESSAGES
2.6 MEDIA SUPPORT
2.7 ADDITIONAL HARDWARE SUPPORT
2.8 ANDROID MARKET
2.7 MULTITASKING
- ANDROID ARCHITECTURE
3.1 KEY APPLIACATIONS
3.2 APPLICATION FRAMEWORK
3.2.1 ACTIVITY MANAGER
3.2.2 CONTENT PROVIDER
3.2.3. RESOURCE MANAGER
3.2.4 LOCATION MANAGER
3.2.5 NOTIFICATION MANAGER
3.2.6 VIEW SYSTEM
3.2.7 TELEPHONY MANAGER
3.2.8 WINDOW MANAGER
3.3 LIBRARIES
3.3.1 SURFACE MANAGER
3.3.2 MEDIA FEAMEWORK
3.3.3 SQLITE
3.3.4 open gl|es
3.3.5 FREE TYPE
3.3.6 webkit 3D LIBRARIES
3.3.7 SGL
3.3.8 ssl
3.3.9 libc
3.4 ANDROID RUNTIME
3.4.1 DALVIK VIRTUAL MACHINE
3.5 LINUX KERNAL
3.5.1 BINDER DRIVER
3.5.2 POWER MANAGEMENT
- APPLICATION ANATOMY
4.1 activity
4.2 intent receiver
4.3 service
4.4 content provider
- DEVELOPMENT TOOLS
- ANDROID VERSIONS
- CONCLUSION
- REFERENCES
1. INTRODUCTION TO ANDROID
The term “Android” has its origin in the Greek word andr-, meaning “
man or male” and the suffix - eides, used to mean “alike or of the s
pecies”. This together means as much as “being human”.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android is a software platform and operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance (O H A).
Google Inc. purchased the initial developer of the software, Android Inc., in August, 2005, making Android Inc. a wholly-owned subsidiary of Google Inc. Android operating system is based upon a modified version of the Linux kernel, which is the most prominent examples of free and open source software. Google and other members of the Open Handset Alliance collaborated on Android's development and release. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android.
The second section this seminar holds the features of android phones. It contains connectivity, marketing, browsing etc.
The third section consists of architecture of the android operating system. The main components of architecture are Linux kernel, dalvik virtual machine, libraries, application framework, key applications etc
The fourth section describes the anatomy of an android application. The main topics in this section are activity, intent receiver, service and content provider.
The tools used for development of android application are included
1.1 Open Handset Alliance (O H A)
On the November 5, 2007 the Open Handset Alliance, a consortium of several companies which include Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile and Texas Instruments unveiled itself. The goal of the Open Handset Alliance is to develop open standards for mobile devices. On the same day, the Open Handset Alliance also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6.
2. FEATURES
2.1 Dalvik Virtual Machine
It is extremely low-memory based virtual machine, which was designed especially for Android to run on embedded systems and work well in low power situations. It is also tuned to the CPU attributes. The Dalvik VM creates a special file format (.DEX) that is created through build time post processing. Conversion between Java classes and .DEX format is done by included “dx” tool.
2.2 INTEGRATED Browser
Google made a right choice on choosing WebKit as open source web browser. They added a two pass layout and frame flattening. Two pass layout loads a page without waiting for blocking elements, such as external CSS or external JavaScript and after a while renders again with all resources downloaded to the device. Frame flattening converts founded frames into single one and loads into the browser. These features increase speed and usability browsing the internet via mobile phone.
2.3 SQLit
SQLite is used for structured data storage. Extremely small (~500kb) relational database management system, which is integrated in Android. It is based on function calls and single file, where all definitions, tables and data are stored. This simple design is more than suitable for a platform such as Android.
2.4 Connectivity
Android supports a wide variety of connectivity technologies including GSM, CDMA, Bluetooth, EDGE, EVDO, 3G and Wi-Fi.
2.5 Messaging
SMS, MMS, and XMPP are available forms of messaging including threaded text messaging.
2.6 Media Support
Android will support advanced audio/video/still media formats such as MPEG-4, H.264, MP3, and AAC, AMR, JPEG, PNG, GIF.
2.7 ADDITIONAL Hardware Support
Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelerometers, and accelerated 3D graphics.
2.8 MARKET
The Android Market is a catalog of applications that can be downloaded and installed to Android devices over-the-air, without the use of a PC.
2.9 MULTITASKING
Multitasking of applications is available.
3. ANDROID ARCHITECTURE
Architecture of android operating system [reference ]
3.1 Applications
Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.
3.2 Application Framework
Sitting above the native libraries and runtime, you’ll find the Application Framework layer. This layer provides the high-level building blocks you will use to create your applications. The framework comes preinstalled with Android, but you can also extend it with your own components as needed.
The most important parts of the framework are as follows:
3.2.1 Activity Manager: This controls the life cycle of applications and maintains a common “backstack” for user navigation.
3.2.2 Content providers: These objects encapsulate data that needs to be shared between applications, such as contacts.
3.2.3 Resource manager: Resources are anything that goes with your program that is not code.
3.2.4 Location manager: An Android phone always knows where it is.
3.2.5 Notification manager: Events such as arriving messages, appointments, proximity alerts, alien invasions, and more can be presented in an unobtrusive fashion to the user.
3.2.6 VIEW SYSTEM: Enabling applications to access data from other applications
or to share their own data
3.2.7 TELEPHONY MANAGER : Provides core telephoning functionalities
3.2.8 WINDOW MANAGER: The window manager creates display surfaces for the
application. It is Responsible for organizing the screen and display of different
layers of application
3.3 LIBRARIES
The next layer above the kernel contains the Android native libraries. These shared libraries are all written in C or C++, compiled for the particular hardware architecture used by the phone, and preinstalled by the phone vendor.
Some of the most important native libraries include the following:
- SURFACE MANAGER : Manages access to the display subsystem and seamlessly composites 2D and #d graphic layers from multiple applications.
- MEDIA LIBRARIES : 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.
- SQLite : A powerful and lightweight relational database engine available to all applications
- OPEN GL|ES : Subset of the OpenGL 3D graphics API designed for embedded devices. It can use for hardware 3D acceleration.
- FREE TYPE : Bitmap and vector font rendering. It is used to rasterize the characters into bitmaps and provides into other font-related operations.
- WebKit : A framework providing the basis for building a web browser based on the open source WebKit browser.
- SGL : SGL is the underlying 2D graphics engine.
- SSL : The Secure Socket Layer is a commonly-used protocol for managing the security of a message transmission on the intrnet.
- LibC : A BSD – based implementation of the standard C library. Which is tuned for embedded Linux-based devices.
3.4 Android Runtime
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
3.4.1 Dalvik Virtual Machine
The Dalvik virtual machine is simple Java interpreter machine, completely optimized for Android
platform and which is developed to run on low-end memory mobile devices. One of the prominent aspects in Dalvik its capability to run along an application compilation enhancing the runtime performance of the applications. Dalvik is not exactly, a Java machine, because Dalvik could not read Java code, but consists its own byte code called “dex” and so the executable files compacted using Dalvik holds the file type name '.dex'. Google states that the credit for Androids successful development goes to Dalvik VM, because this type of virtual machine, delivers a good performance over various stages of an application runtime environment, conserving more battery-power during long run of an application.
A small drawback with Dalvik, is its none-compatibility with Java SE libraries, Java ME class libraries and Swing Java libraries, while they cannot be and need not to-be run directly on this virtual machine. It uses its own Apache Harmony Java implementation libraries. Despite of the earlier reason, its escalated Android's value proposition due to its minimal-electrical power consumption, vast library resources, and non-fragmentary application programming interface, unlike its Java rivals. Java related brands and trademarks are owned by Sun Micro Systems Inc., which is soon to be acquired by Oracle Corporation. Another significant fact that assures the open source status of Android, is that Sun Corp, cannot claim on the usage of Java-like programming language, since Android uses a Java Virtual execution environment developed by Google. S
The core Java libraries that come with Android are different from both the Java Standard Edition (Java SE) libraries and the Java Mobile Edition (Java ME) libraries. There is a substantial amount of overlap, however.
3.5 Linux Kernel
Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
3.5.1 Power Management
Based on the standard Linux Power Management,, Android has its own component. A light-weight power management diver built top of it. CPU shouldn’t consume power if no applications or services require power.
3.5.2 BINDER (IPC) DRIVER
Driver to facilitate inter-process communication between applications and services. The binder driver provides high performance through shared memory, synchronous calls between processes.
4. Anatomy of an Android Application
There are four building blocks for an Android application :
4.1 Activity :
User interface component, which corresponds to one screen at time. It means that for the simple application like Address Book, the developer should have one activity for displaying contacts, another activity component for displaying more detailed information of chosen name and etc.
4.2 Intent Receiver :
Wakes up a predefined action through the external event . For example for the application like Email Inbox , the developer should have intent receiver and register his code through XML to wake up an alarm notification, when the user receives email.
- Service :
A task , which is done in the background. It means that the user can start an application from the activity window and keep the service work, while browsing other applications. For instance, he can browse Google Maps application while holding a call or listening music while browsing other applications.
- Content Provider :
A component , which allows sharing some of the data with other processes and applications. It is the best way to communicate the applications between each other .Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.
DEVELOPMENT TOOLS
The Android SDK includes a variety of custom tools that help you develop mobile applications on the Android platform. Three of the most significant tools are:
- Android Emulator - A virtual mobile device that runs on our
Computer -use to design, debug, and test our applications in an
Actual Android run-time environment
- Android Development Tools Plugin -for the Eclipse IDE – adds powerful extensions to the Eclipse integrated environment
- Dalvik Debug Monitor Service (DDMS) -Integrated with Dalvik
-this tool let us manage processes on an emulator and assists in debugging
Version history
| Released 23 September 2008 |
- 1.1
- 1.5 (Cupcake)
- 1.6 (Donut)
- 2.0 / 2.1 ( Éclair )
- 2.2 ( Froyo )
- 2.3 (Gingerbread)
- 3.0 (Honeycomb)
- 4.0 (Ice Cream Sandwich)
CONCLUSION
Mobile software development has evolved over time. Android has emerged as a new mobile development platform, building on past successes and avoiding past failures of other platforms .Android was designed to empower the developer to write innovative applications .The platform is open source, with no up-front fees, and developers enjoy many benefits over other competing platforms.
- Android is open to all: industry, developers and users
- Participating in many of the successful open source projects
- Aims to be as easy to build for as the web.
- Google Android is stepping into the next level of Mobile Internet
references
- http://www.android.com - Android Official Webpage
- http://developer.android.com/guide/basics/what-is-android.html
- http://code.google.com/android/what-is-android.html
- http://www.openhandsetalliance.com - Open Handset Alliance Webpage
- http://www.androidwiki.com – Android Wiki