An d r o i d i s a L i n u x -b a s e dope r a t i ng s y s t e m f ormo b i l e de v i c e s s uc h a sS ma r t phone a nd t a bl e tc o mp ut e r s , de v e l ope d byGo o g l e i n c onj unc t i onwi t h t h e Op e n Ha n d s e tAl l i a n c e . An d r o i d wa si ni t i a l l y de v e l ope d byAn d r o i d I n c ., w h o m G o o g l ef i na nc i a l l y ba c k e d a ndl a t e r p u r c h a s e d i n 2005. T h e
Android, Inc. founded in Palo Alto, California, UnitedStates in October 2003 by Andy Rubin(co-founder ofDanger), 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 Rubin’s words“….smarter mobile devices that are more aware of itsowner’s location and preferences”. 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.
Each version after "Astro" and "Bender" is named in alphabetical order after a dessert or sugary treat, with 1.5 "Cupcake" being the first and every update since following this naming convention.• 1.0 Astro• 1.1 Bender• 1.5 Cupcake• 1.6 Donut• 2.0/2.1 Eclair• 2.2 Froyo• 2.3 Gingerbread• 3.x Honeycomb• 4.0 Ice Cream Sandwich• 4.1 Jelly Bean
Android 1.0, the first commercial version of the software, was released on September 23, 2008. This release was robot-related codename, "Astro", internally at Google, but the name could not be used officially for trademark reasons. The first Android device, the HTC Dream, incorporated the following.
On February 9, 2009, the Android 1.1 update was released, initially for the HTC Dream only. Like 1.0, this release continued the robot naming theme, with "Bender" chosen, but again this was used internally only. The update resolved bugs, changed the API and added a number of features
On April 30, 2009, the Android 1.5 update was released, based on Linux kernel 2.6.27. This was the first release to use a name based on a dessert ("Cupcake"), a theme which would be used for all releases henceforth. The update included several new features and UI amendments.
On September 15, 2009, the Android 1.6 SDK – dubbed Donut – was released, based on Linux kernel 2.6.29. Included in the update were numerous new features.
On October 26, 2009, the Android 2.0 SDK – codenamed Eclair – was released, based on Linux kernel 2.6.29. Changes included
On May 20, 2010, the Android 2.2 (Froyo) SDK was released, based on Linux kernel 2.6.32
On December 6, 2010, the Android 2.3 (Gingerbread) SDK was released, based on Linux kernel 2.6.35. Changes included.
On February 22, 2011, the Android 3.0 (Honeycomb) SDK – the first tablet-only Android update – was released, based on Linux kernel 2.6.36. The first device featuring this version, the Motorola Xoom tablet, was released on February 24, 2011. Changes included.
The SDK for Android 4.0.1 (Ice Cream Sandwich), based on Linux kernel 3.0.1, was publicly released on October 19, 2011. Googles Gabe Cohen stated that Android 4.0 was "theoretically compatible" with any Android 2.3.x device in production at that time. The source code for Android 4.0 became available on November 14, 2011. The update introduced numerous new features, including
• On June 27, 2012, at the Google I/O conference, Google announced Android 4.1 (Jelly Bean). Based on Linux kernel 3.1.10, Jelly Bean is an incremental update with the primary aim of improving the user interface, both in terms of functionality and performance. The performance improvement involves "Project Butter", which uses touch anticipation, triple buffering, extended vsync timing and a fixed frame rate of 60fps to create a fluid and "buttery"-smooth UI.[ Android 4.1 Jelly Bean was released to AOSP on July 9, 2012, and an OTA update for the Nexus 7 to Android 4.1.1 was released on July 11, 2012, making it the first device to run Jelly Bean.
• Android consists of a kernel based on the Linux kernel 2.6 and Linux Kernel 3.x (Android 4.0 onwards), with middleware, libraries and APIs written in C and application software running on an 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 translated from Java byte code. The main hardware platform for Android is the ARM architecture. There is support for x86 from the Android x86 project, and Google TV uses a special x86 version of Android.
Androids kernel is based on the Linux kernel and has further architecturechanges by Google outside the typical Linux kernel developmentcycle. Android does not have a native X Window System by default nor doesit support the full set of standard GNU libraries, and this makes it difficult toport existing Linux applications or libraries to Android.Certain features that Google contributed back to the Linux kernel, notably apower management feature called wake locks, 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 work withthe Linux kernel community, Greg Kroah-Hartman, the current Linux kernelmaintainer for the -stable branch, said in December 2010 that he wasconcerned that Google was no longer trying to get their code changesincluded in mainstream Linux.
Some Google Android developers hinted that "the Android team wasgetting fed up with the process", because they were a small team andhad more urgent work to do on Android.Linux included the auto sleep and wake locks capabilities in the 3.5kernel, after many previous attempts at merger. The interfaces arethe same but the upstream Linux implementation allows for twodifferent suspend modes: to memory (the traditional suspend thatandroid uses), and to disk (hibernate, as it is known on thedesktop). In August 2011, Linus Torvalds said that "eventually Androidand Linux would come back to a common kernel, but it will probablynot be for four to five years".In December 2011, Greg Kroah-Hartman announced the start of theAndroid Mainlining Project, which aims to put some Android drivers,patches and features back into the Linux kernel, starting in Linux 3.3.further integration being expected for Linux Kernel 3.4.
• 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 SMS and MMS are available forms of messaging, including threaded text messaging and Android Cloud To Device Messaging (C2DM) and now enhanced version of C2DM, Android Google Cloud Messaging (GCM) is also a part of Android Push Messaging Service.
• 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.
• Applications are usually developed in the Java language using the Android Software Development Kit, but other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers and various cross platform mobile web applications frameworks.• Applications can be acquired by end-users either through a store such as Google Play or the Amazon Appstore, or by downloading and installing the applications APK file from a third-party site.