Android (operating system)

From Wikipedia, the free encyclopedia

  (Redirected from Android (mobile device platform))
Jump to: navigation, search
Android
Company / developer Open Handset Alliance
Kernel type Monolithic (Linux)
License Apache 2.0 and GPLv2 [1]
Website android.com

Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google and later the Open Handset Alliance.[2] It allows developers to write managed code in the Java language, controlling the phone via Google-developed Java libraries,[3]. Applications written in C and other languages can be compiled to ARM native code and run, but this development path isn't officially supported by Google.[4][5]

The unveiling of the Android platform 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 has made most of the Android platform available under the Apache free-software and open source license.[8]

Contents

[edit] History

Alternative logo.

In July 2005, Google acquired Android, Inc., a small startup company based in Palo Alto, CA.[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[citation needed]), and Chris White (one of the first engineers at WebTV[citation needed]). At the time, little was known about the functions of Android, Inc. other than 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 Linux-based mobile device OS 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.[12][13][14]

More speculation that Google would be entering the mobile-phone market came in December 2006.[15] 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.[16] More speculation followed reporting that as Google was defining technical specifications, it was showing prototypes to cell phone manufacturers and network operators. As many as 30 prototype phones are reported to be operating "in the wild."[17]

In September 2007, InformationWeek covered an Evalueserve study reporting that Google has filed several patent applications in the area of mobile telephony. [18][19]

[edit] Open Handset Alliance founded

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, Google Chairman/CEO[2]

On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, was unveiled with the goal to develop open standards for mobile devices.[2] 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.[2]

On 9 December 2008, it was announced that 14 new members would be joining the Android project including: Sony Ericsson, Vodafone Group Plc, ARM Holdings Plc, Asustek Computer Inc, Toshiba Corp and Garmin Ltd [20][21]

Google Chairman and CEO Eric Schmidt took a moment in the official press release to dispel all previous rumors and speculation about the existence of a stand-alone Google phone.[citation needed]

[edit] Open source

Since 21 Oct 2008, Android is available as open source. Google threw open the entire source code (including network and telephony stacks [22]) that were not available previously, under an Apache license.[23] Certain parts that relate to a specific hardware can't be made open and are not considered part of the Android platform. With Apache License, vendors are free to add proprietary extensions without submitting those back to the open source community. While Google's contributions to this platform are expected to remain open-sourced, the branches could explode using varieties of licenses.

Android had been criticized for not being all open-source software despite what was announced by Google. Parts of the SDK are proprietary and closed source and some believe this is so that Google can control the platform.[24][25][26][27] The Android Software Development Kit License Agreement[28] states that:

3.2 You agree that Google (or Google's licensors) own all legal right, title and interest in and to the SDK, including any intellectual property rights which subsist in the SDK. Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not by this License Agreement. Until the SDK is released under an open source license, you may not extract the source code or create a derivative work of the SDK.

However, Google has since announced that all parts of the OS will be released under the Apache License where applicable and under the GPL elsewhere.

[edit] Features

Current features and specifications:[29][30]

Handset layouts
The platform is adaptable to both 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 a wide variety of 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
Main article: WebKit
The web browser available in Android is based on the open-source WebKit application framework.
Dalvik virtual machine
Software written in Java can be compiled into Dalvik bytecodes and 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 will support advanced audio/video/still media formats such as MPEG-4, H.264, MP3, AAC, OGG, AMR, JPEG, PNG, GIF.
Additional hardware support
Android is fully capable of utilizing video/still cameras, touchscreens, GPS, accelerometers, and accelerated 3D graphics.
Development environment
Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE.

[edit] Hardware products running Android

Several manufacturers have expressed interest in implementing the Android platform.

[edit] Early prototypes

At least three prototypes were unveiled for Android at the Mobile World Congress on 12 February 2008. One prototype at the ARM booth displayed several basic Google applications. A 'd-pad' controls zooming of items in the dock with a relatively quick response.[citation needed]

A prototype at the Google IO conference on May 28, 2008 had a 528 MHz Qualcomm processor and a Synaptics capacitive touchscreen and used the UMTS cellular standard. It had a 128 MB of RAM and 256 MB of flash.[citation needed]

[edit] Released

[edit] T-Mobile G1

Main article: T-Mobile G1

The T-Mobile G1 was the first phone to the market that uses the Android platform.[31][32] The phone is part of an open standards effort of the Open Handset Alliance.[33] It was released in the US on October 22, 2008, in the UK on October 30, 2008,[34] and will be available in other European countries including Germany, Netherlands and the Czech Republic in early 2009.[35]

[edit] Forthcoming

  • Openmoko phones (Neo FreeRunner and Neo 1973). Following Google's release of the Android source code on 21 October 2008, efforts have begun to port Android to the Neo FreeRunner, Neo 1973 and other Openmoko phones.[36] As of 4 November 2008 (2008 -11-04), the whole source stack compiles, with the kernel, user interface and most applications working, but telephony, SMS, suspend/resume and wifi, which rely on lower level hardware features, are not fully working.[37][38]
  • In September 2008, Motorola confirmed that it was working on hardware products that would run Android. [39]
  • Lenovo is working an Android-based mobile phone that supports the Chinese 3G TD-SCDMA standard.[41]

[edit] Aftermarket installations

Some users have been able (with some amount of hacking, and with limited functionalities) to install Android on mobile phones shipped with other OS:

[edit] Software development

Early Android device.

The early feedback on developing applications for the Android platform was mixed.[45] 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.)[46] 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."[47] Despite this, Android-targeted applications began to appear already the week after the platform was announced. The first publicly available application was the Snake game.[48][49]

[edit] Software development kit

The Android SDK includes a comprehensive set of development tools.[50] These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials). Currently supported development platforms include x86-based computers running Linux (any 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.

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.

[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 two phases of the competition.[54][55] The first phase 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.[56][57] The second phase ended in early September with the announcement of ten teams that received $275,000 each, and ten teams that received $100,000 each.[58]

[edit] Native code

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.[5] 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.[59] 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.[60] 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.[61]

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.[62][63]

Elements Interactive 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.[64]

[edit] Native code on the T-Mobile G1

Native code can be executed using the ADB debugger, which is run as a background daemon on the T-Mobile G1.[65] The shell will run with the user ID of the "shell" user rather than root. When the G1 was first released, it was quickly discovered that the telnet daemon on the phone is given a uid of 0 (root) when it runs, giving the end user complete access to the device. This security hole has since been fixed in build RC30 of Android and was pushed to all devices via an OTA update[66]

The G1 firmware can be updated by flashing from an image stored on the microSD card.[67] These images are cryptographically signed by either the phone manufacturer or network carrier.[68]

[edit] Criticism

Some security-related functionality is reserved for approved system applications relating to installing software, making emergency calls, etc., which has led to some controversy[69].

Also, at least for now, software installed by users must be written in Java. This provides end-users with less control over their phone's functionality however protects the user from potential malicious programs that may be downloaded and used and allows more complex applications to be quickly developed.

Another issue is related to Android's disregard of 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, instead using the Apache Harmony Java implementation.[70]

[edit] References

  1. ^ "Licenses". Android Open Source Project. Open Handset Alliance. Retrieved on 2008-10-22.
  2. ^ a b c d Open Handset Alliance (2007-11-05). "Industry Leaders Announce Open Platform for Mobile Devices". Press release. Retrieved on 5 November 2007.
  3. ^ "Google's Android parts ways with Java industry group".
  4. ^ "General Android". Retrieved on 2008-08-29.
  5. ^ a b "Native C application for Android".
  6. ^ "Open Handset Alliance". Open Handset Alliance. Retrieved on 2007-11-06.
  7. ^ http://phandroid.com/2008/12/10/sony-ericsson-htc-androids-set-for-summer-2009/
  8. ^ "Open Handset Alliance". Retrieved on 2008-09-23.
  9. ^ a b Elgin, Ben (2005-08-17). "Google Buys Android for Its Mobile Arsenal" (HTML). Business Week. Retrieved on 2007-11-07.
  10. ^ Markoff, John (2007-11-04). "I, Robot: The Man Behind the Google Phone" (HTML). New York Times. Retrieved on 2008-10-14.
  11. ^ Scott Kirsner (September 2, 2007). "Introducing the Google Phone". Retrieved on 2008-10-24.
  12. ^ Block, Ryan (2007-08-28). "Google is working on a mobile OS, and it's due out shortly" (HTML). Engadget. Retrieved on 2007-11-06.
  13. ^ Sharma, Amol; Kevin J. Delaney (2007-08-02). "Google Pushes Tailored Phones To Win Lucrative Ad Market" (HTML). The Wall Street Journal. Retrieved on 2007-11-06.
  14. ^ "Google admits to mobile phone plan" (HTML). directtraffic.org. Google News (2007-03-20). Retrieved on 2007-11-06.
  15. ^ McKay, Martha (December 2006). "Can iPhone become your phone?; Linksys introduces versatile line for cordless service.". The Record: L9. 
  16. ^ Ackerman, Elise (2007-08-30). "Blogosphere Aflutter With Linux-Based phone Rumors" (HTML). Linux Insider. Retrieved on 2007-11-07.
  17. ^ Cox, John (2007-10-08). "Why Google’s phone won’t kill Apple’s iPhone" (HTML). Network World 2. New York Times. Retrieved on 2007-11-06.
  18. ^ Claburn, Thomas (2007-09-19). "Google's Secret Patent Portfolio Predicts gPhone" (HTML). Information Week. Retrieved on 2007-11-06.
  19. ^ Pearce, James Quintana (2007-09-20). "Google’s Strong Mobile-Related Patent Portfolio" (HTML) (in English). mocoNews.net. Retrieved on 2007-11-07.
  20. ^ Martinez, Jennifer (2008-12-10). "CORRECTED - UPDATE 2-More mobile phone makers back Google's Android". Reuters. Thomson Reuters. Retrieved on 2008-12-13.
  21. ^ Kharif, Olga (2008-12-09). "Google's Android Gains More Powerful Followers". BusinessWeek. McGraw-Hill. Retrieved on 2008-12-13.
  22. ^ eWeek article on Android source
  23. ^ android Android is now available as open source
  24. ^ "When will we see more code released under open source licenses?". Google (2008-01-29). Retrieved on 2008-02-03. "Over time, more of the code that makes up Android will be released, but at this point, we have been concentrating on shipping an SDK that helps application developers get started. In short: Stay tuned."
  25. ^ Slobojan, Ryan (2007-11-19). "Dalvik, Android's virtual machine, generates significant debate". infoq.com. Retrieved on 2008-03-01.
  26. ^ Topic, Dalibor (2007-11-14). "What Does Android Mean for Sun’s OpenJDK". Retrieved on 2008-02-03. "Android is proprietary, despite being marketed as open source. Android has a compatibility pledge, signed and kept behind closed doors. Android has no governance model, nor any indication there will be one. Android has no spec, and the license prohibits alternative implementations, as that’s not a use licensed by Google in the SDK license. Android is completely controlled by Google, and Google reserves the right to kill off competitors applications if they hurt Google financially, etc. It’s only as open as it is in Google’s financial interest to allow openness, by design."
  27. ^ Topic, Dalibor (2007-11-12). "QOTD: Google's license for the Android SDK". Retrieved on 2008-02-03. "There is a bunch of other rather objectionable stuff, but dear me, this is pretty bad as far as license agreements for pseudo-open-source software go"
  28. ^ "Android Software Development Kit License Agreement". Google (2007-11-12). Retrieved on 2008-02-03.
  29. ^ "What is Android?" (HTML) (in English). Google (2007-11-12). Retrieved on 2007-11-12.
  30. ^ Topolsky, Joshua (2007-11-12). "Google's Android OS early look SDK now available" (HTML) (in English). Engadget. Retrieved on 2007-11-12.
  31. ^ Montgomery, Justin (July 8, 2008). "T-Mobile's HTC Dream, The First Android Phone?". Retrieved on 2008-08-03.
  32. ^ Holson, Laura M.; Miguel Helft (August 15, 2008). "T-Mobile to be first to use Google's Android". Retrieved on 2008-08-20.
  33. ^ Holson, Laura; Helft, Miguel (2008-08-14). "Smartphone Is Expected via Google", New York Times. Retrieved on 15 August 2008. 
  34. ^ "T-Mobile G1 Hits the UK". T Mobile press release.
  35. ^ "Android G1 - T-Mobile Google Phone".
  36. ^ "Android on Openmoko phones".
  37. ^ "Porting Android, Phase 3: Done".
  38. ^ "Marco Trevisan's blog (in Italian)".
  39. ^ Emigh, Jacqueline (2008-9-30). "Motorola confirms Android plans, but won't say how big", BetaNews. 
  40. ^ "Huawei to Launch Android and Symbian Smartphones Next Year", PCWorld (2008-11-7). 
  41. ^ "Lenovo-China Mobile's OPhone spotted", modmyGphone (2008-12-11). 
  42. ^ http://www.motorolafans.com/forums/android-os/21887-porting-andoid-a1200-ming.html
  43. ^ http://it029000.massey.ac.nz/vogue/
  44. ^ http://www.internettablettalk.com/forums/showthread.php?p=198240
  45. ^ Paul, Ryan (2007-12-19). "Developing apps for Google Android: it's a mixed bag" (HTML) (in English). ars technica. Retrieved on 2007-12-19.
  46. ^ "You can't rush perfection, but now you can file bugs against it".
  47. ^ Morrison, Scott (2007-12-19). "Glitches Bug Google's Android Software" (HTML) (in English). The Wall Street Journal. Retrieved on 2007-12-19.
  48. ^ "Snake" (in English). Retrieved on 2008-01-26.
  49. ^ "First Android Application - Snake" (HTML) (in English). Mobiles2day (2007-11-14). Retrieved on 2008-01-07.
  50. ^ development tools
  51. ^ Cade Metz (14 July 2008). "Google plays Hide and Seek with Android SDK". Retrieved on 2008-10-23.
  52. ^ "Android - An Open Handset Alliance Project: Download the Android SDK". Retrieved on 2008-10-24.
  53. ^ "Android - An Open Handset Alliance Project: Upgrading the SDK". Retrieved on 2008-10-24.
  54. ^ "Android Developer Challenge" (HTML) (in English). code.google.com. Retrieved on 2008-01-11.
  55. ^ "The Google Phone? Not Quite" (HTML) (in English). pcfastlane.com. Retrieved on 2008-01-11.
  56. ^ Android Developers Blog: The Top 50 Applications
  57. ^ Android Developer Challenge announces first-round winners
  58. ^ "Android - An Open Handset Alliance Project: Developer Challenge". Google. Retrieved on 2008-10-24.
  59. ^ Cooksey, Tom (2007-11-07). "Native C *GRAPHICAL* applications now working on Android emulator". android-developers mailing list. Retrieved on 2008-12-13.
  60. ^ "Skia source".
  61. ^ Toker, Alp (2008-09-06). "Skia graphics library in Chrome: First impressions". Retrieved on 2008-12-13.
  62. ^ Srinivas, Davanum (2007-12-09). "Android - Invoke JNI based methods (Bridging C/C++ and Java)". Retrieved on 2008-12-13.
  63. ^ "java.lang.System". Android Documentation. Google. Retrieved on 2008-12-13.
  64. ^ "Native C++ game S-Tris2 running on Android!". android-developers mailing list (2007-11-16). Retrieved on 2008-12-13.
  65. ^ "Busybox on the G1".
  66. ^ "Rooting Android".
  67. ^ "Learn how to update using your microSD card".
  68. ^ "confirmed by Android team: G1 only accepts firmware signed by manufacturer".
  69. ^ Sutton, Al (October 22, 2008). "Android; The not-so-open open platform".
  70. ^ Mazzocchi, Stefano (2007-11-12). "Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME". Retrieved on 2008-12-13.

[edit] See also

[edit] External links

Personal tools