Android is a Linux-based operating system for mobiledevices such as smartphones and tablet computers,developed by Google in conjunction with the OpenHandset Alliance. Android was initially developed byAndroid Inc, whom Google financially backed andlater purchased in 2005. The unveiling of the Androiddistribution in 2007 was announced with the foundingof the Open Handset Alliance, a consortium of 86hardware, software, and telecommunication companiesdevoted to advancing open standards for mobiledevices. Google releases the Android code as open-source, under the Apache License. The Android OpenSource Project (AOSP) is tasked with the maintenanceand further development of Android.
Android has a large community of developers writingapplications ("apps") that extend the functionality ofthe devices. Developers write primarily in acustomized version of Java, and apps can bedownloaded from online stores such as Google Play(formerly Android Market), the app store run byGoogle, or third-party sites. In June 2012, there weremore than 600,000 apps available for Android, and theestimated number of applications downloaded fromGoogle Play was 20 billion.Android became the world’s leading smartphoneplatform at the end of 2010. For the first quarter of2012, Android had a 59% smartphone market shareworldwide. At the half of 2012, there were 400 milliondevices activated and 1 million activations per day.
FoundationAndroid, Inc. was founded in Palo Alto, California, UnitedStates in October 2003 by Andy Rubin (co-founderof Danger), Rich Miner (co-founder of WildfireCommunications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White (headed design and interfacedevelopment at WebTV) to develop, in Rubins words"...smarter mobile devices that are more aware of its ownerslocation and preferences". Despite the obvious pastaccomplishments of the founders and early employees,Android Inc. operated secretly, revealing only that it wasworking on software for mobile phones. That same year,Rubin ran out of money. Steve Perlman, a close friend ofRubin, brought him $10,000 in cash in an envelope andrefused a stake in the company.
Google acquisitionGoogle acquired Android Inc. on August 17, 2005, makingAndroid Inc. a wholly owned subsidiary of Google. Keyemployees of Android Inc., including Andy Rubin, RichMiner and Chris White, stayed at the company after theacquisition. Not much was known about Android Inc. at thetime of the acquisition, but many assumed that Google wasplanning to enter the mobile phone market with this move.At Google, the team led by Rubin developed a mobile deviceplatform powered by the Linux kernel. Google marketed theplatform to handset makers and carriers on the promise ofproviding a flexible, upgradable system. Google had linedup a series of hardware component and software partnersand signaled to carriers that it was open to various degreesof cooperation on their part.
Google Acquisition (continued)Speculation about Googles intention to enter the mobilecommunications market continued to build throughDecember 2006. Reports from the BBC and The Wall StreetJournal noted that Google wanted its search andapplications on mobile phones and it was working hard todeliver that. Print and online media outlets soon reportedrumors that Google was developing a Google-brandedhandset. Some speculated that as Google was definingtechnical specifications, it was showing prototypes to cellphone manufacturers and network operators.In September 2007, InformationWeek covered anEvalueserve study reporting that Google had filed severalpatent applications in the area of mobile telephony.
Open Handset AllianceOn November 5, 2007, the Open Handset Alliance, aconsortium of several companies which include BroadcomCorporation, Google, HTC, Intel, LG, Marvell TechnologyGroup, Motorola, Nvidia, Qualcomm, Samsung Electronics,Sprint Nextel, T-Mobile and Texas Instruments unveileditself. The goal of the Open Handset Alliance is to developopen standards for mobile devices. On the same day, theOpen Handset Alliance also unveiled its first product,Android, a mobile device platform built on the Linux kernelversion 2.6.On December 9, 2008, 14 new members joined, includingARM Holdings, Atheros Communications, AsustekComputer Inc, Garmin Ltd, Huawei Technologies,PacketVideo, Softbank, Sony Ericsson, Toshiba Corp, andVodafone Group Plc.
Android Open Source ProjectThe Android Open Source Project (AOSP) is led byGoogle, and is tasked with the maintenance anddevelopment of Android. According to the project "Thegoal of the Android Open Source Project is to create asuccessful real-world product that improves the mobileexperience for end users." AOSP also maintains theAndroid Compatibility Program, defining an "Androidcompatible" device "as one that can run any applicationwritten by third-party developers using the AndroidSDK and NDK", to prevent incompatible Androidimplementations. The compatibility program is alsooptional and free of charge, with the CompatibilityTest Suite also free and open-source.
Android consists of a kernel based on the Linuxkernel 2.6 and Linux Kernel 3.x (Android 4.0onwards), with middleware, libraries and APIswritten in C and application software running onan application framework which includes Java-compatible libraries based on Apache Harmony.Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik dex-code(Dalvik Executable), which is usually translatedfrom Java bytecode.The main hardware platform for Android is theARM architecture. There is support for x86 fromthe Android x86 project, and Google TV uses aspecial x86 version of Android.
LinuxAndroids kernel is based on the Linux kernel and has further architecturechanges by Google outside the typical Linux kernel development cycle.Android does not have a native X Window System by default nor does itsupport the full set of standard GNU libraries, and this makes it difficultto port existing Linux applications or libraries to Android.Certain features that Google contributed back to the Linux kernel, notablya power management feature called wakelocks, were rejected by mainlinekernel developers, partly because kernel maintainers felt that Google didnot show any intent to maintain their own code. Even though Googleannounced in April 2010 that they would hire two employees to workwith the Linux kernel community, Greg Kroah-Hartman, the currentLinux kernel maintainer for the -stable branch, said in December 2010 thathe was concerned that Google was no longer trying to get their codechanges included in mainstream Linux. Some Google Androiddevelopers hinted that "the Android team was getting fed up with theprocess", because they were a small team and had more urgent work todo on Android.
LinuxHowever, in September 2010, Linux kernel developer RafaelJ. Wysocki added a patch that improved the mainline Linuxwakeup events framework. He said that Android devicedrivers that use wakelocks can now be easily merged intomainline Linux, but that Androids opportunistic suspendfeatures should not be included in the mainline kernel. InAugust 2011, Linus Torvalds said that "eventually Androidand Linux would come back to a common kernel, but it willprobably not be for four to five years".In December 2011, Greg Kroah-Hartman announced thestart of the Android Mainlining Project, which aims to putsome Android drivers, patches and features back into theLinux kernel, starting in Linux 3.3. further integration beingexpected for Linux Kernel 3.4.
FeaturesCurrent features and specifications: 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, NFC and WiMAX. Messaging
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, FLAC, WAV, JPEG, PNG, GIF, BMP, WebP. Streaming media support RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Android, and by the operating system in Android 3.0 (Honeycomb). Additional hardware support Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, barometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics. 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 Apples patents on touch-screen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively. 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 in Android 3.1+, and in earlier versions through manufacturer customizations and third-party applications. Video calling Android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later. Gingerbread allows Nexus S to place Internet calls with a SIP account. This allows for enhanced VoIP dialing to other SIP accounts and even phone numbers. Skype 2.1 offers video calling in Android 2.3, including front camera support. Multitasking Multitasking of applications, with unique handling of memory allocation, is available.
Voice based features Google search through voice has been available since initial release. 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 Wi-Fi hotspot. Before Android 2.2 this was supported by third-party applications or manufacturer customizations. Screen capture Android supports capturing a screenshot by pressing the power and volume-down buttons at the same time. Prior to Android 4.0, the only methods of capturing a screenshot were through manufacturer and third-party customizations or otherwise by using a PC connection (DDMS developers tool). These alternative methods are still available with the latest Android. External storage Most Android devices include microSD slot and can read microSD cards formatted with FAT32, Ext3 or Ext4 file system. To allow use of high-capacity storage media such as USB flash drives and USB HDDs, many Android tablets also include USB A receptacle. Storage formatted with FAT32 is handled by Linux Kernel VFAT driver, while 3rd party solutions are required to handle other popular file systems such as NTFS, HFS Plus and exFAT.
While Android is designed primarily for smartphones and tablets, theopen and customizable nature of the operating system allows it to beused on other electronics, including laptops and netbooks, smartbooks,ebook readers, and smart TVs (Google TV). Further, the OS has seen nicheapplications on wristwatches, headphones, car CD and DVD players,smart glasses (Project Glass), refrigerators, vehicle satnav systems, homeautomation systems, games consoles, mirrors, cameras, portable mediaplayers landlines, and treadmills.The first commercially available phone to run Android was the HTCDream, released on October 22, 2008. In early 2010 Google collaboratedwith HTC to launch its flagship Android device, the Nexus One. This wasfollowed later in 2010 with the Samsung-made Nexus S and in 2011 withthe Galaxy Nexus.iOS and Android 2.3.3 Gingerbread may be set up to dual boot on ajailbroken iPhone or iPod Touch with the help of OpeniBoot and iDroid.In December 2011 it was announced the Pentagon has officially approvedAndroid for use by its personnel.
Applications are usually developed inthe Java language using the Android SoftwareDevelopment Kit, but other development tools areavailable, including a Native Development Kit forapplications or extensions in C or C++, GoogleApp Inventor, a visual environment for noviceprogrammers and various cross platform mobileweb applications frameworks.Applications can be acquired by end-users eitherthrough a store such as Google Play orthe Amazon Appstore, or by downloading andinstalling the applications APK file from a third-party site.
Android applications run in a sandbox, an isolated area of the operatingsystem that does not have access to the rest of the systems resources,unless access permissions are granted by the user when the application isinstalled. Before installing an application, the Play Store displays allrequired permissions. A game may need to enable vibration, for example,but should not need to read messages or access the phonebook. Afterreviewing these permissions, the user can decide whether to install theapplication. The sandboxing and permissions system weakens the impactof vulnerabilities and bugs in applications, but developer confusion andlimited documentation has resulted in applications routinely requestingunnecessary permissions, reducing its effectiveness. The complexity ofinter-application communication implies Android may haveopportunities to run unauthorized code.Several security firms have released antivirus software for Androiddevices, in particular, Lookout Mobile Security,AVG Technologies,Avast!, F-Secure, Kaspersky, McAfee and Symantec.sThis software isineffective as sandboxing also applies to such applications, limiting theirability to scan the deeper system for threats.
Android smartphones have the ability to report the location of Wi-Fi access points, encountered as phone users move around, tobuild databases containing the physical locations of hundreds ofmillions of such access points. These databases form electronicmaps to locate smartphones, allowing them to run appslikeFoursquare, Latitude, Places, and to deliver location-basedads.Third party monitoring software such as TaintDroid, an academicresearch-funded project, can, in some cases, detect when personalinformation is being sent from applications to remote servers. InMarch 2012 it was revealed that Android Apps can copy photoswithout explicit user permission, Google responded they"originally designed the Android photos file system similar tothose of other computing platforms like Windows and Mac OS.[...] were taking another look at this and considering adding apermission for apps to access images. Weve always had policiesin place to remove any apps [on Google Play] that improperlyaccess your data."
LicensingThe source code for Android is available under free and open sourcesoftware licenses. Google publishes most of the code (including networkand telephony stacks) under the Apache License version 2.0, and the rest,Linux kernel changes, under the GNU General Public License version 2.The Open Handset Alliance develops the changes to the Linux kernel, inpublic, with source code publicly available at all times. The rest ofAndroid is developed in private, with source code released publicly whena new version is released. Typically Google collaborates with a hardwaremanufacturer to produce a flagship device (part of the Google Nexusseries) featuring the new version of Android then makes the source codeavailable after that device has been released.In early 2011, Google chose to temporarily withhold the Android sourcecode to the tablet-only Honeycomb release, the reason, according to AndyRubin in an official Android blog post, was because Honeycomb wasrushed for production of the Motorola Xoom, and they did not want thirdparties creating a "really bad user experience" by attempting to put ontosmartphones a version of Android intended for tablets. The source codewas once again made available in November 2011 with the release ofAndroid 4.0.
Both Android and Android phone manufacturers have beenthe target of numerous patent lawsuits. On August 12,2010, Oracle sued Google over claimed infringement ofcopyrights and patents related to the Java programminglanguage. Oracle originally sought damages up to $6.1billion, but this valuation was rejected by a federal judgewho asked Oracle to revise the estimate. In response, Googlesubmitted multiple lines of defense, counterclaiming thatAndroid did not infringe on Oracles patents or copyright,that Oracles patents were invalid, and several otherdefenses. They said that Android is based on ApacheHarmony, a clean room implementation of the Java classlibraries, and an independently developed virtual machinecalled Dalvik. In May 2012 the jury in this case found thatGoogle did not infringe on Oracles patents, and the trialjudge ruled that the structure of the Java APIs used byGoogle was not copyrightable.
In addition to lawsuits against Google directly, various proxywars have been waged against manufacturers of Android devices.Both Apple and Microsoft have sued several manufacturers forpatent infringement, with Apples ongoing legal action againstSamsung being a particularly high-profile case. In October 2011Microsoft said they had signed patent license agreements with tenAndroid device manufacturers, whose products account for 55%of the worldwide revenue for Android devices. Theseinclude Samsung and HTC.Google has publicly expressed its dislike for the current patentlandscape in the United States, accusing Apple, Oracle andMicrosoft of trying to take down Android through patentlitigation, rather than innovating and competing with betterproducts and services. In 2011-2, Google purchased MotorolaMobility for US$12.5 billion, which was viewed in part as adefensive measure to protect Android, since Motorola Mobilityheld more than 17,000 patents. In December 2011 Google boughtover a thousand patents from IBM.