Android


Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Google Inc. purchased the initial developer of the software, Android Inc., in 2005. Android’s mobile operating system is based on a modified version of the Linux kernel. 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 Android operating system is the world’s best-selling Smartphone platform.


Android has a large community of developers writing applications (“apps”) that extend the functionality of the devices. There are currently over 150,000 apps available for Android. Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites. Developers write primarily in the Java language, controlling the device via Google-developed Java libraries.

The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license.

The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc. The Android operating system, including the Linux kernel, consists of roughly 12 million lines of code including 3 million lines of XML, 2.8 million lines of C, 2.1 million lines of Java, and 1.75 million lines of C++.

History
Android Inc. founded in 2003

Android, Inc. was founded in Palo Alto, California, United States in October, 2003 by Andy Rubin (co-founder of Danger),[22] Rich Miner (co-founder of Wildfire Communications, Inc.),[23] Nick Sears (once VP at T-Mobile),[24] and Chris White (headed design and interface development at WebTV).[25] to develop, in Rubin’s words “…smarter mobile devices that are more aware of its owner’s location and preferences.”[26] Despite the obvious past accomplishments of the founders and early employees, Android Inc. operated secretively, admitting only that it was working on software for mobile phones.[26]
Android Inc. acquired by Google

Google acquired Android Inc. in August, 2005, making Android Inc. a wholly-owned subsidiary of Google Inc. Key employees of Android Inc., including Andy Rubin, Rich Miner and Chris White, stayed at the company after the acquisition.[27]

Not much was known about Android Inc. at the time of the acquisition, but many assumed that Google was planning to enter the mobile phone market with this move.
Development accelerates

At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel. Google marketed the platform to handset makers and carriers on the premise of providing a flexible, upgradable system. Google had lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part.[28][29][30]

Speculation about Google’s intention to enter the mobile communications market continued to build through December 2006.[31] Reports from the BBC and The Wall Street Journal noted that Google wanted its search and applications on mobile phones and it was working hard to deliver that. Print and online media outlets soon reported rumors that Google was developing a Google-branded handset.[32] Some speculated that as Google was defining technical specifications, it was showing prototypes to cell phone manufacturers and network operators.

In September 2007, InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony.[33][34]
Open Handset Alliance
Main article: Open Handset Alliance

“Today’s announcement is more ambitious than any single ‘Google Phone’ that the press has been speculating about over the past few weeks. Our vision is that the powerful platform we’re unveiling will power thousands of different phone models.”
Eric Schmidt, former Google Chairman/CEO[9]

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.[9] 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.[9]

On December 9, 2008, 14 new members joined, including ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc.[35][36]
Licensing

With the exception of brief update periods, Android has been available under a free software/open source license since 21 October 2008. Google published the entire source code (including network and telephony stacks)[37] under an Apache License.[38] Google also keeps the reviewed issues list publicly open for anyone to see and comment.[39]

Even though the software is open-source, device manufacturers can not use Google’s Android trademark unless Google certifies that the device complies with their Compatibility Definition Document (CDD). Devices must also meet this definition to be eligible to license Google’s closed-source applications, including Android Market.[40]

In September 2010, Skyhook Wireless filed a lawsuit against Google in which they alleged that Google had used the compatibility document to block Skyhook’s mobile positioning service (XPS) from Motorola’s Android mobile devices.[41] In December 2010 a judge denied Skyhook’s motion for preliminary injunction, saying that Google had not closed off the possibility of accepting a revised version of Skyhook’s XPS service, and that Motorola had terminated their contract with Skyhook because Skyhook wanted to disable Google’s location data collection functions on Motorola’s devices, which would have violated Motorola’s obligations to Google and its carriers.[42]
Version history
Main article: Android version history

Android has seen a number of updates since its original release. These updates to the base operating system typically focus on fixing bugs as well as adding new features. Generally each new version of the Android operating system is developed under a code name based on a dessert item. Past updates included Cupcake and Donut.

The most recent released versions of Android are:

* 2.0/2.1 (Eclair), which revamped the user interface and introduced HTML5 and Exchange ActiveSync 2.5 support[43]

* 2.2 (Froyo), which introduced speed improvements with JIT optimization and the Chrome V8 JavaScript engine, and added Wi-Fi hotspot tethering and Adobe Flash support[44]

* 2.3 (Gingerbread), which refined the user interface, improved the soft keyboard and copy/paste features, and added support for Near Field Communication[45]

* 3.0 (Honeycomb), a tablet-oriented[46][47][48] release which supports larger screen devices and introduces many new user interface features, and supports multicore processors and hardware acceleration for graphics.[49] The Honeycomb SDK has been released and the first device featuring this version, the Motorola Xoom tablet, went on sale in February 2011.[50] Google has chosen to withhold the development source code, which calls into question the “open-ness” of this Android release.[51] Google claims this is done to eliminate manufacturers putting a tablet-specific OS on phones, much like the previous autumn, where tablet manufacturers put a non-tablet optimized phone OS (Android 2.x) on their Tablets resulting in bad user experiences.

The upcoming version of Android is:

* Ice Cream, a combination of Gingerbread and Honeycomb into a “cohesive whole,”[52] with a possible release in mid-2011[53]

Features

Current features and specifications:[54][55][56]
The Android Emulator default home screen (v1.5).
Architecture Diagram
Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts.
Storage SQLite, a lightweight relational database, is used for data storage purposes
Connectivity Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, and WiMAX.
Messaging SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud to Device Messaging Framework (C2DM) is also a part of Android Push Messaging service.
Web browser The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome’s V8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test.
Java support While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on the Dalvik virtual machine. Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party-applications.
Media support Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, BMP.[56]
Streaming media support RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash 10.1 plugin.[57] Apple HTTP Live Streaming is supported by RealPlayer for Mobile[58] and planned to be supported by the operating system in Android 3.0 (Honeycomb).[49] Microsoft Smooth Streaming is planned to be supported through the awaited port of Silverlight plugin to Android.
Additional hardware support Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.
Development environment Includes a device emulator, tools for debugging, memory and performance profiling. The integrated development environment (IDE) is Eclipse (currently 3.4 or greater) using the Android Development Tools (ADT) Plugin. The programming languages are Java and C/C++.
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.
Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple’s patents on touch-screen technology at the time).[59] Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively.[60]
Bluetooth Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available through manufacturer customizations and third-party applications. Full HID support is planned for Android 3.0 (Honeycomb).[49]
Video calling The mainstream Android version does not support video calling, but some handsets have a customized version of the operating system which supports it, either via UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is planned for Android 3.0 (Honeycomb).
Multitasking Multitasking of applications is available.
Voice based features Google search through Voice has been available since initial release.[62] Voice actions for calling, texting, navigation etc. are supported on Android 2.2 onwards.
Tethering Android supports tethering, which allows a phone to be used as a wireless/wired hotspot. Prior to Android 2.2 this was supported by third-party applications or manufacturer customizations.Hardware running Android
Main article: List of Android devices

The Android OS can be used as an operating system for cellphones, netbooks and tablets, including the Dell Streak, Samsung Galaxy Tab, TV and other devices. The first commercially available phone to run the Android operating system was the HTC Dream, released on 22 October 2008. In early 2010 Google collaborated with HTC to launch its flagship[68] Android device, the Nexus One. This was followed later in 2010 with the Samsung-made Nexus S.

iOS and Android 2.2.1 Froyo may be set up to dual boot on a jailbroken iPhone or iPod Touch with the help of iBoot and iDroid.
Software development
It has been suggested that this section be split into a new article.
Early Android device.

The early feedback on developing applications for the Android platform was mixed. Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issue-tracking system. (Google announced an issue tracker on 18 January 2008.)n December 2007, MergeLab mobile startup founder Adam MacBeth stated, “Functionality is not there, is poorly documented or just doesn’t work… It’s clearly not ready for prime time.” Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the Snake game.The Android Dev Phone is a SIM-unlocked and hardware-unlocked device that is designed for advanced developers. While developers can use regular consumer devices purchased at retail to test and use their applications, some developers may choose not to use a retail device, preferring an unlocked or no-contract device.
Software development kit

The Android software development kit (SDK) includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials. The SDK is downloadable on the android developer website, or click here.Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.9 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse (currently 3.5 or 3.6) using the Android Development Tools (ADT) Plugin, though developers may use any text or to Java and XML files then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely).

A preview release of the Android SDK was released on 12 November 2007. On 15 July 2008, the Android Developer Challenge Team accidentally sent an email to all entrants in the Android Developer Challenge announcing that a new release of the SDK was available in a “private” download area. The email was intended for winners of the first round of the Android Developer Challenge. The revelation that Google was supplying new SDK releases to some developers and not others (and keeping this arrangement private) led to widely reported frustration within the Android developer community at the time.[77]

On 18 August 2008 the Android 0.9 SDK beta was released. This release provided an updated and extended API, improved development tools and an updated design for the home screen. Detailed instructions for upgrading are available to those already working with an earlier release.[78] On 23 September 2008 the Android 1.0 SDK (Release 1) was released.[79] According to the release notes, it included “mainly bug fixes, although some smaller features were added.” It also included several API changes from the 0.9 version. Multiple versions have been released since.[80]

Enhancements to Android’s SDK go hand in hand with the overall Android platform development. The SDK also supports older versions of the Android platform in case developers wish to target their applications at older devices. Development tools are downloadable components, so after one has downloaded the latest version and platform, older platforms and tools can also be downloaded for compatibility testing.[81]

Android applications are packaged in .apk format and stored under /data/app folder on the Android OS (the folder is accessible to root user only for security reasons). APK package contains .dex files[82] (compiled byte code files called Dalvik executables), resource files, etc.
Android Market
Main article: Android Market

Android Market is the online software store developed by Google for Android devices. An application program (“app”) called “Market” is preinstalled on most Android devices and allows users to browse and download apps published by third-party developers, hosted on Android Market. As of December 2010[update] there were about 200,000 games, applications and widgets available on the Android Market, with an estimated 2.5 billion total downloads.

Only devices that comply with Google’s compatibility requirements are allowed to preinstall Google’s closed-source Android Market app and access the Market. The Market filters the list of applications presented by the Market app to those that are compatible with the user’s device, and developers may restrict their applications to particular carriers or countries for business reasons.

Google announced the Android Market on 28 August 2008, and it was available to users on 22 October 2008. Support for paid applications was available from 13 February 2009 for US and UK developers,with additional support from 29 countries on 30 September 2010. In February 2011, the Android Market was made fully accessible on the web, allowing users to browse and pick up applications using their PCs, send them to their mobile phone and make comments on them. All this functionality was previously accessible only from mobile phone devices.

Users can install apps directly using APK files, or from alternative app markets. Unlike Apple, Google allows independent app stores to operate for Android.
App Inventor for Android
Main article: Google App Inventor

On 12 July 2010 Google announced the availability of App Inventor for Android, a Web-based visual development environment for novice programmers, based on MIT’s Open Blocks Java library and providing access to Android devices’ GPS, accelerometer and orientation data, phone functions, text messaging, speech-to-text conversion, contact data, persistent storage, and Web services, initially including Amazon and Twitter.[90] “We could only have done this because Android’s architecture is so open,” said the project director, MIT’s Hal Abelson. Under development for over a year,the block-ing tool has been taught to non-majors in computer science at Harvard, MIT, Wellesley, and the University of San Francisco, where Professor David Wolber developed an introductory computer science course and tutorial book for non-computer science students based on App Inventor for Android.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>