GOOGLE ANDROID

 

ABSTRACT

 

        Google's Android platform is based on Linux and is a creation that is backed by the Open Handset Alliance. But beyond how it works and what makes it work, Google's new OS is something fresh and new that none of us have witnessed in years.        

 

        In essence, Android does away with the notion that operating systems should be locked down and gives the power back to the manufacturers and users to create an element of innovation that has been lacking in the cell phone industry for so long. Things will change. Instead of seeing the derivative devices that do nothing to push this industry forward, you will finally see a group of Android-based phones that offer something different from every other device and have the look and feel of something new, even though they're all running the same basic operating system.

 

INTRODUCTION

 

 

           The Android platform is a software stack for mobile devices including an operating system, middleware and key applications. 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.

 

            Android was built form ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It is built to be truly open.

 

HISTORY


       In July 2005 Google acquired Android Inc., a small start up company based in Palo  Alto, CA.

 

       On 5 November 2007, the Open Handset Alliance, a consortium of several Companies which include Google, HTC, Intel, Motorola, T-Mobile and NVIDIA, was unveiled with a goal to develop open standards for mobile devices. Along with the formation of Open Handset Alliance, the OHA also unveiled their first product, Android, an open source mobile phone platform based on the Linux operating system.

 

       The unveiling of Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34, hardware, software and telecom companies devoted to advancing open standards for mobile devices. When released in 2008, most of the android platform will be made available under the apache free software and open source license.

 

FEATURES

     Following are some of the most important features of the Android:

·         Application framework enabling reuse and replacement of components

·         Dalvik virtual machine optimized for mobile devices

·         Integrated browser based on the open source Webkit engine

·         SQLite for structured data storage

·         Media support for common audio, video and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

·         GSM Telephony (hardware dependent)

·         Bluetooth, EDGE, 3G and WiFi (hardware dependent)

·          Camera, GPS, and accelerometer (hardware dependent)

·         Rich development environment including a device emulator, tools for debugging, memory and performance profiling

          

ANDROID ARCHITECTURE

The following diagram shows the major components of  the Android operating system:

 

APPLICATIONS

          

             Android ships with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts and others.

 

             All the applications used in android are written using the Java programming Language.

 

APPLICATION FRAMEWORK

         An application framework is a software framework that is used to implement the standard structure of an application for a specific operating system. Developers have full access to the API’S used by the core applications. The application architecture is designed to simplify the reuse of the components. Any application can publish its capabilities and any other application may then make use of those capabilities subject to security constraints enforced by the framework. The same mechanism allows components to be replaced by the user.

 

        Underlying all applications is a set of services and systems including:

·         Views

·         Content providers

·         Resource manager

·         Notification manager

·         Activity manager

 

 

VIEWS

 

 

        A rich and extensible set of views that can be used to build an application, including lists, grids, text boxes, buttons and eve an embeddable web browser.


CONTENT PROVIDERS

 

           Content providers enable applications to access data from other applications such As contacts or to share their own data with other applications. If u want to make your data Public, you can create or call a content provider. The content provider is an object that Can store and retrieve data accessible by all applications. This is the only way to share Data across packages because there is no common storage area that all packages can Share. Android ships with a number of content providers for common data types (audio, Video, images, personnel contact information, and so on).

 

        How a content provider actually stores its data is upto the implementation of the Content provider, but all content providers must implement a common convention to Query for data, and a common convention to return the results. A content provider can Implement a custom helper functions to make data storage/ retrieval simpler for the Specific data that it exposes.

 

 Using a content provider to store and retrieve data

      

         Android exposes a number of content providers for a wide range of data types from music and image files to phone numbers. Android’s content providers are loosely linked to their clients. Each content provider exposes a unique string identifying the type of data that it will handle, and the client must use that sting to store or retrieve data of that type. We can query for data, modify data, add a record, delete a record using a content provider.


RESOURCE MANAGER


           A resource manager provides access to non code resources such as localized strings, graphics, and layout files. Resources are external files (that are non code files) that are used by your code and compiled in your application at the build time. Android supports a number of different kinds of resource files, including XML, PNG, and JPEG files.

 

          Resources are externalized from source code, and XML files are compiled into a binary fast loading format for efficiency reasons. Strings likewise are compressed into a more efficient storage form. It is for these reasons that we have these different resource types in Android platform. The android resource system keeps track of all non code assets associated with a application.

 

NOTIFICATION MANAGER

              A notification manager enables all applications to display custom alerts in the status bar. Android.app. NotificationManager is a class to notify the user of events that happen. This is how you tell the user that something has happened in the background.   Notification can take different forms:

·         A persistent icon that goes in the status bar and is accessible through the launcher. When a user selects it a designated intent can be launched

·         Turning on or flashing LED’S on the device or

·         Alerting the user by flashing the backlight, playing a sound or vibrating.

 

             Each of the notify methods takes an int id parameter. This id identifies this notification from your application to the system, so that id should be unique within your application. If u call one of the notify methods with an id that is currently active and a new set of notification parameters, it will be updated. For example, if you pass a new status bar icon, the old icon will be replaced with the new one.

 ACTIVITY MANAGER

 

      An activity manager manages the life cycle of the applications and provides a common navigation backstack. An activity is a single focused thing that the user can do. almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI. While activities are often presented to the user as full screen windows, they can also be used in other ways: as floating windows, or embedded inside of another activity.

 

      Activities in the system are manages as an activity stack. When a new activity is started, it is placed on the top of the stack and becomes the running activity. The previous activity always remains below it in the stack, and will not come to the foreground again until the new activity exits.

      An activity has essentially four states:   

·         If an activity is in the foreground of  the screen (at the top of the stack) , it is active or running.

·         If an activity has lost focus but is still visible, it is paused. A paused activity is completely alive. It maintains all state and member information and remains attached to the window manager, but it can be killed by the system in extreme low memory situations.        

·         If an activity is completely obscured by another activity, it is stopped. It still retains all state and member information, however, it is no longer visible to the user so its window is hidden and it will often be killed by the system when memory is needed elsewhere.

·         If an activity is paused or stopped, the system can drop the activity from memory by either asking it to finish, or simply killing its process. When it is displayed again to the user, it must be completely restarted and restored to its previous state.

 

 

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. Some of the core libraries are listed below:

 

·         System C library - a BSD-derived implementation of the standard C system        library (libc), tuned for embedded Linux-based devices

·         Media Libraries - based on PacketVideo's OpenCORE; 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

·         Surface Manager - 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 rasterizer

·         FreeType - bitmap and vector font rendering

·         SQLite - a powerful and lightweight relational database engine available to all applications

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. It is optimized for low memory requirements, and is designed to allow multiple VM instances to run at once, relying on the underlying operating system for process isolation, memory management and threading support. Dalvik is often referred to as a Java Virtual Machine, but this is not strictly accurate, as the bytecode on which it operates is not Java bytecode. Instead, a tool named dx, included in the Android SDK, transforms the Java Class files of Java classes compiled by a regular Java compiler into another class file format (the .dex format).

 

        The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

 

LINUX KERNEL


        The Linux kernel is a Unix-like operating system kernel. It is the namesake of the Linux family of operating systems. Released under the GNU General Public License version 2 (GPLv2) and developed by contributors worldwide, Linux is one of the most prominent examples of free software.

 

       Linux supports true preemptive multitasking (both in user mode and kernel mode), virtual memory, shared libraries, demand loading, shared copy-on-write executables, memory management, the Internet protocol suite, and threading.    

 

      Linux is a monolithic kernel. Device drivers and kernel extensions run in kernel space, with full access to the hardware, although some exceptions run in user space. Unlike Microsoft Windows, the graphics system most people use with Linux doesn't run in the 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.

 


WHY GOOGLE’S ANDROID OS MATTERS

  • OPEN

 

         Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It is built to be truly open. For example, an application could call upon any of the phone's core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that has been designed to optimize memory and hardware resources in a mobile environment. Android will be open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.

 

 

  • ALL APPLICATIONS ARE CREATED EQUAL

 

         Android does not differentiate between the phone's core applications and third-party applications. They can all be built to have equal access to a phone's capabilities providing users with a broad spectrum of applications and services. With devices built on the Android Platform, users will be able to fully tailor the phone to their interests. They can swap out the phone's homescreen, the style of the dialer, or any of the applications. They can even instruct their phones to use their favorite photo viewing application to handle the viewing of all photos.


  • BREAKING DOWN APPLICATION BOUNDARIES


         Android breaks down the barriers to building new and innovative applications. For example, a developer can combine information from the web with data on an individual's mobile phone -- such as the user's contacts, calendar, or geographic location -- to provide a more relevant user experience. With Android, a developer could build an application that enables users to view the location of their friends and be alerted when they are in the vicinity giving them a chance to connect.

 

 

·        FAST AND EASY APPLICTION DEVELOPMENT

 

         Android provides access to a wide range of useful libraries and tools that can be used to build rich applications. For example, Android enables developers to obtain the location of the device, and allows devices to communicate with one another enabling rich peer-to-peer social applications. In addition, Android includes a full set of tools that have been built from the ground up alongside the platform providing developers with high productivity and deep insight into their applications.

 

 CONCLUSION

 

      Android is an open system, which has led to at least one product vendor announcing the development of security applications. In Android, each application is assigned its own unique Linux user-ID at the time of installation and this ID is used to run the application.

 

      Android's strength is going to come from being an open source project. That means that it will be a team effort that draws participants from all around the world. Having all these companies and individuals working on Android should make the pace of development much faster than what a single company can do. At the same time, having a broad range of developers will result in a very rich and flexible OS with broad appeal.


BIBLIOGRAPHY


  • www.code.google.com/android

 

  • www.wikipedia.org

      

  • http://openhandsetalliance.com

 

 

 

 

Comments

Popular posts from this blog

Chemical test for Tragacanth

Chemical test for Benzoin

Chemical test for Agar/Agar-Agar / Japaneese Isinglass