ANDROID [GOOGLE MOBILE OS]
Android version 2.0 running in the Android SDK Emulator |
|
| Company / developer | Open Handset Alliance |
| Working state | Current |
| Source model | Free and open source software |
| Initial release | 2008-10-21 |
| Latest stable release | Android 2.0.1, Release 1 / 2009-12-03[1] |
| Supported platforms | ARM, MIPS, Power Architecture, x86 |
| Kernel type | Monolithic (Linux) |
| License | Apache 2.0 and GPLv2[2] |
| Website | android.com |
Android is a mobile operating system running on the Linux kernel[3]. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance.[4] It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.[5]
The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 47 hardware, software, and telecom companies devoted to advancing open standards for mobile devices.[6][7] Google released most of the Android code under the Apache License, a free software and open source license.[8]
Contents[hide] |
[edit] History
Android at Googleplex.
In July 2005, Google acquired Android, Inc., a small startup company based in Palo Alto, California, USA.[9] Android’s co-founders who went to work at Google included Andy Rubin (co-founder of Danger[10]), Rich Miner (co-founder of Wildfire Communications, Inc.[11]), Nick Sears (once VP at T-Mobile[12]), and Chris White (headed design and interface development at WebTV[13]). At the time, little was known about the functions of Android, Inc. other than that they made software for mobile phones.[9] This began rumors that Google was planning to enter the mobile phone market, although it was unclear what function it might perform in that market.[citation needed]
At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel which they marketed to handset makers and carriers on the premise of providing a flexible, upgradeable system.[citation needed]
It was reported that Google had already 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.[14][15][16] More speculation that Google would be entering the mobile-phone market came in December 2006.[17] 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.[18]
More speculation followed reporting 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.[19][20]
[edit] 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, Google Chairman/CEO[4]
|
On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel and T-Mobile was unveiled with the goal to develop open standards for mobile devices.[4] Along with the formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6.[4]
On 9 December 2008, it was announced that 14 new members would be joining the Android project including: ARM Holdings Plc, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc.[21][22]
Google Chairman and CEO Eric Schmidt
took some time in the official press release to dispel all previous
rumors and speculation about the existence of a stand-alone Google
phone.[4]
[edit] Licensing
With the exception of brief update periods, Android has been
available as open source since 21 October 2008. Google opened the
entire source code (including network and telephony stacks[23]) under an Apache License.[24]
With the Apache License, vendors are free to add proprietary
extensions without submitting those back to the open source community.
[edit] Update history
A cupcake was placed beside Android at Googleplex to commemorate the 1.5 release of Android.
Android has seen a number of updates since its original release.
These updates to the base Operating System typically fix bugs and add
new features.
| 1.5 (Cupcake) | On 30 April 2009, the official 1.5 (Cupcake) update for Android was released.[25][26] There are several new features and UI updates included in the 1.5 update:
|
|---|---|
| 1.6 (Donut) | On 15 September 2009, the 1.6 (Donut) SDK was released.[28][29] Included in the update are:
|
| 2.0/2.0.1/2.1 (Eclair)[31] | On 26 October 2009 the 2.0 (Eclair) SDK was released.[32] Among the changes are:[33]
|
A subsequent version is to be named Flan.[34]
[edit] Features
Current features and specifications:[35][36][37]
| Handset layouts | The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 1.0 specifications, and traditional smartphone layouts. |
|---|---|
| Storage | The Database Software SQLite is used for data storage purposes |
| Connectivity | Android supports connectivity technologies including GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth, and Wi-Fi. |
| Messaging | SMS and MMS are available forms of messaging including threaded text messaging. |
| Web browser | The web browser available in Android is based on the open-source WebKit application framework. The browser scores a 93/100 on the Acid3 Test. |
| Java support | Software written in Java can be compiled to be executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine. |
| Media support | Android supports the following audio/video/still media formats: 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.[37] |
| Additional hardware support | Android can use video/still cameras, touchscreens, GPS, accelerometers, magnetometers, 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, a plugin for the Eclipse IDE. |
| Market | Like many phone-based application stores, the Android Market is a catalog of applications that can be downloaded and installed to target hardware over-the-air, without the use of a PC. Originally only freeware applications were supported. Paid-for apps have been available on the Android Market in the United States since 19 February 2009.[38] The Android Market has been expanding rapidly. By December, 2009, it had over 20,000 Android applications for download.[39] |
| Multi-touch | Android has native support for multi-touch which is available in newer handsets such as the HTC Hero. The feature was initially disabled at the kernel level (possibly to avoid infringing Apple patents on touch-screen technology[40]). |
Android does not support bluetooth file exchange, videocall or native J2ME, as do other mobile operating systems, such as Symbian OS and Windows Mobile.
[edit] Hardware running Android
The first phone to run the Android operating system was the HTC Dream, released on 22 October 2008.[41]
By the end of 2009 there will be at least 18 phone models using Android worldwide, according to Google.[42] In addition to the mobile devices that ship with Android, some users have been able (with some amount of hacking, and with limited functionality) to install it on mobile devices shipped with other operating systems.[43]
[edit] Software development
The early feedback on developing applications for the Android platform was mixed.[44]
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.)[45] In 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.”[46]
Despite this, Android-targeted applications began to appear the week
after the platform was announced. The first publicly available
application was the Snake game.[47][48] 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 apps, some developers may choose not to use a
retail device, preferring an unlocked or no-contract device.
[edit] Software development kit
The Android SDK includes a comprehensive set of development tools.[49] These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials. Currently supported development platforms include x86-architecture computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or Vista. Requirements also include Java Development Kit, Apache Ant, and Python 2.2 or later. The officially supported integrated development environment (IDE) is Eclipse
(3.2 or later) using the Android Development Tools (ADT) Plugin, though
developers may use any text editor to edit Java and XML files then use command line
tools to create, build and debug Android applications as well as
control attached Android devices (e.g., triggering a reboot, installing
software package(s) remotely).[50]
A preview release of the Android software development kit
(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) has
led to widely reported frustration within the Android developer
community.[51]
On 18 August 2008 the Android 0.9 SDK beta was released. This
release provides an updated and extended API, improved development
tools and an updated design for the home screen. Detailed instructions[52]
for upgrading are available to those already working with an earlier
release. On 23 September 2008 the Android 1.0 SDK (Release 1) was
released.[53]
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.
On 9 March 2009, Google released version 1.1 for the Android dev
phone. While there are a few aesthetic updates, a few crucial updates
include support for “search by voice, priced apps, alarm clock fixes,
sending gmail freeze fix, fixes mail notifications and refreshing
intervals, and now the maps show business reviews”. Another important
update is that Dev phones can now access paid apps and developers can
now see them on the Android Market.[54]
In the middle of May 2009, Google released version 1.5 (Cupcake) of
the Android OS and SDK. This update included many new features
including video recording, support for the stereo bluetooth profile, a
customizable onscreen keyboard system and voice recognition. This
release also opened up the AppWidget framework to third party
developers allowing anyone to create their own home screen widgets.[55]
In September 2009 the “Donut” version (1.6) was released which
featured better search, battery usage indicator and VPN control applet.
New platform technologies included Text to Speech engine (not available
on all phones), Gestures & Accessibility framework.[56]
Android Applications are packaged in .apk format and stored under /data/app folder on the Android OS. The user can run the command adb root to access this folder as only the root has permissions to access this folder.
[edit] Android Developer Challenge
The Android Developer Challenge was a competition for the most
innovative application for Android. Google offered prizes totaling 10
million US dollars, distributed between ADC I and ADC II.[57][58]
ADC I accepted submissions from 2 January to 14 April 2008. The 50 most
promising entries, announced on 12 May 2008, each received a $25,000
award to fund further development.[59][60]
It ended in early September with the announcement of ten teams that
received $275,000 each, and ten teams that received $100,000 each.[61] ADC II was announced on 27 May 2009.[57] The first round of the ADC II closed on 6 October 2009.[62]
The first-round winners of ADC II comprising the top 200 applications
were announced on 5 November 2009. Voting for the second round also
opened on the same day and ended on November 25. Google announced the
top winners on November 30.[63][64]
[edit] Google applications
Google has also participated in the Android Market by offering
several applications for its services. These applications include Google Voice
for the Google Voice service, Scoreboard for following sports, Sky Map
for watching stars, Finance for their finance service, Maps Editor for
their MyMaps service, Places Directory for their Local Search, Google
Goggles that searches by image, and My Tracks, a jogging application.
Android phones that include the ‘Google Experience’ also have Google
Search, Google Calendar, Google Maps, Google Navigation and Gmail
integrated.
[edit] Native code
Libraries written in C and other languages can be compiled to ARM native code
and installed using the Android Native Development Kit. Native classes
can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes.[65][66]
Complete applications can be compiled and installed using traditional development tools.[67] The ADB debugger gives a root shell under the Android Emulator which allows native ARM code to be uploaded and executed. ARM code can be compiled using GCC on a standard PC.[67]
Running native code is complicated by the fact that Android uses a
non-standard C library (known as Bionic). The underlying graphics
device is available as a framebuffer at /dev/graphics/fb0.[68]
The graphics library that Android uses to arbitrate and control access
to this device is called the Skia Graphics Library (SGL), and it has
been released under an open source license.[69] Skia has backends for both win32 and Cairo, allowing the development of cross-platform applications, and it is the graphics engine underlying the Google Chrome web browser.[70]
Elements Interactive Mobile B.V. have ported their EdgeLib C++ library to Android, and native code executables of their S-Tris2 game (a Tetris clone) and Animate3D technology demo are available for download.[71]
[edit] Community-based firmware
There is a thriving community of open-source enthusiasts that build
and share Android-based firmware with a number of customizations and
additional features, such as FLAC lossless audio support and the ability to store downloaded apps on the microSD card.[72]
Those firmware packages are updated frequently, incorporate elements
of Android functionality that haven’t yet been officially released
within a carrier-sanctioned firmware, and tend not to have arbitrary
limitations. CyanogenMod is one such firmware.
On 24 September 2009, Google issued a cease and desist letter[73] to the modder Cyanogen, citing issues with the re-distribution of Google’s closed-source applications[74]
within the custom firmware. Even though Android OS is open source,
phones come packaged with closed-source Google applications for
functionality such as the application store and GPS navigation. Google
has asserted that these apps can only be provided through approved
distribution channels by licensed distributors. Cyanogen has complied
with Google’s wishes and is continuing to distribute his mod without
the proprietary software. He has provided a method to back up licensed
Google applications during the mod’s install process and restore them
when it is complete.[75]
[edit] Marketing
[edit] Logos
Android uses the Droid font family made by Ascender Corporation.[76]
Android Green is the color of the Android Robot that represents the
Android operating system. The print color is PMS 376C and the online
hex color is #A4C639, as specified by the Android Brand Guidelines.[77]
[edit]
The first Android phone was released on 22 October 2008. Research company Canalys estimates that by Q2, 2009, Android had a 2.8% share of the worldwide smartphone market.[78] By the following quarter (Q3 2009), Android’s market share had grown to 3.5%.[79]
In October, 2009, Gartner Inc. predicted that by 2012, Android would become the world’s second most popular smartphone platform, behind only the Symbian OS which powers Nokia phones very popular outside the US. Meanwhile, BlackBerry would fall from 2nd to 5th place, iPhone would remain in 3rd place, and Microsoft’s Windows Mobile would remain in 4th place.[80]
Taiwan’s Market Intelligence & Consulting Institute (MIC) predicted
that in 2013, 31.8 million Android phones and 126 million Android-based
portable products would ship.[81]
Analytics firm, Flurry, estimates that 250,000 Motorola Droid phones were sold in the United States, during the phone’s first week in stores.[82]
[edit] Etymology
Both the Android and Nexus One names allude to the novel (by Philip K. Dick) Do Androids Dream of Electric Sheep, which was later adapted into the film Blade Runner. Both the book and film are centered on a group of rogue androids called ‘replicants‘ that are identified through the model designation Nexus-6.[83][84][85]
[edit] Restrictions and issues
- The Android platform does not support animated .gif files at this time. It only shows the first frame.
- Android uses Linux as its kernel,[86] but according to Google, it is not a conventional Linux distribution; it does not have a native X Window System, nor does it support the full set of standard GNU libraries like its system libraries (GNU C Library). This specific modification makes it difficult to reuse existing Linux applications or libraries on Android.[87]
- Android does not use established Java standards, i.e. Java SE and ME.
This prevents compatibility among Java applications written for those
platforms and those for the Android platform. Android only reuses the
Java language syntax, but does not provide the full-class libraries and
APIs bundled with Java SE or ME.[88] - Because of potential security issues,[89]
Android does not officially allow apps to be installed on, nor run
from, an SD card. Current Android products such as the HTC Dream and
Magic have limited onboard memory and many users feel restricted by
this lack of functionality.[90] However, several unsupported modifications exist, to give the user this capability.[91] - ARM Holdings and RealNetworks have expressed doubt that it will gain a major market share as a netbook OS.[92]
- Garbage collection
will slow down programs that make too many memory allocations so that
Dalvik can keep a pool of free memory. This may noticeably affect
responsiveness.[93] - Developers reported that it’s difficult to maintain applications
working on different versions of Android, because of various
compatibility issues between versions 1.5 and 1.6. This however was
only true in some rare cases, specifically during the ADC2 contest.[94].
[edit] See also