Android 111
Android 111
Contents
1History
2Features
o 2.1Interface
o 2.2Applications
o 2.3Memory management
3Hardware
4Development
o 4.1Update schedule
o 4.2Linux kernel
o 4.3Software stack
o 4.4Open-source community
o 4.5Device codenames
5Security and privacy
o 5.1Scope of surveillance by public institutions
o 5.2Common security threats
o 5.3Technical security features
6Licensing
o 6.1Leverage over manufacturers
7Reception
o 7.1Market share
o 7.2Adoption on tablets
o 7.3Platform information
o 7.4Application piracy
8Legal issues
o 8.1Patent lawsuit with Oracle
o 8.2Anti-competitive challenges in Europe
o 8.3Others
9Other uses
10Mascot
11See also
12References
o 12.1Sources
13External links
History
See also: Android version history
Android Inc. was founded in Palo Alto, California, in October 2003 by Andy Rubin, Rich Miner,
Nick Sears, and Chris White.[16][17] Rubin described the Android project as "tremendous potential in
developing smarter mobile devices that are more aware of its owner's location and preferences".
[17]
The early intentions of the company were to develop an advanced operating system for digital
cameras, and this was the basis of its pitch to investors in April 2004.[18] The company then
decided that the market for cameras was not large enough for its goals, and by five months later
it had diverted its efforts and was pitching Android as a handset operating system that would
rival Symbian and Microsoft Windows Mobile.[18][19]
Rubin had difficulty attracting investors early on, and Android was facing eviction from its office
space. Steve Perlman, a close friend of Rubin, brought him $10,000 in cash in an envelope, and
shortly thereafter wired an undisclosed amount as seed funding. Perlman refused a stake in the
company, and has stated "I did it because I believed in the thing, and I wanted to help Andy."[20][21]
In July 2005,[17] Google acquired Android Inc. for at least $50 million.[22] Its key employees,
including Rubin, Miner and White, joined Google as part of the acquisition.[17] Not much was
known about the secretive Android at the time, with the company having provided few details
other than that it was making software for mobile phones.[17] 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 promise of providing a flexible, upgradeable system.
[23]
Google had "lined up a series of hardware components and software partners and signaled to
carriers that it was open to various degrees of cooperation".[attribution needed][24]
Speculation about Google's intention to enter the mobile communications market continued to
build through December 2006.[25] An early prototype had a close resemblance to
a BlackBerry phone, with no touchscreen and a physical QWERTY keyboard, but the arrival of
2007's Apple iPhone meant that Android "had to go back to the drawing board".[26][27] Google later
changed its Android specification documents to state that "Touchscreens will be supported",
although "the Product was designed with the presence of discrete physical buttons as an
assumption, therefore a touchscreen cannot completely replace physical buttons".[28] By 2008,
both Nokia and BlackBerry announced touch-based smartphones to rival the iPhone 3G, and
Android's focus eventually switched to just touchscreens. The first commercially available
smartphone running Android was the HTC Dream, also known as T-Mobile G1, announced on
September 23, 2008.[29][30]
HTC Dream or T-Mobile G1, the first commercially released device running Android (2008)
Eric Schmidt, Andy Rubin and Hugo Barra at a 2012 press conference announcing Google's Nexus 7 tablet
Features
See also: List of features in Android
Interface
Android's default user interface is mainly based on direct manipulation, using touch inputs that
loosely correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to
manipulate on-screen objects, along with a virtual keyboard.[79] Game controllers and full-size
physical keyboards are supported via Bluetooth or USB.[80][81] The response to user input is
designed to be immediate and provides a fluid touch interface, often using the vibration
capabilities of the device to provide haptic feedback to the user. Internal hardware, such
as accelerometers, gyroscopes and proximity sensors are used by some applications to respond
to additional user actions, for example adjusting the screen from portrait to landscape depending
on how the device is oriented,[82] or allowing the user to steer a vehicle in a racing game by
rotating the device, simulating control of a steering wheel.[83]
Android devices boot to the homescreen, the primary navigation and information "hub" on
Android devices, analogous to the desktop found on personal computers. Android homescreens
are typically made up of app icons and widgets; app icons launch the associated app, whereas
widgets display live, auto-updating content, such as a weather forecast, the user's email inbox, or
a news ticker directly on the homescreen.[84] A homescreen may be made up of several pages,
between which the user can swipe back and forth.[85] Third-party apps available on Google
Play and other app stores can extensively re-theme the homescreen,[86] and even mimic the look
of other operating systems, such as Windows Phone.[87] Most manufacturers customize the look
and features of their Android devices to differentiate themselves from their competitors.[88]
Along the top of the screen is a status bar, showing information about the device and its
connectivity. This status bar can be "pulled" down to reveal a notification screen where apps
display important information or updates.[85] Notifications are "short, timely, and relevant
information about your app when it's not in use", and when tapped, users are directed to a
screen inside the app relating to the notification.[89] Beginning with Android 4.1 "Jelly Bean",
"expandable notifications" allow the user to tap an icon on the notification in order for it to expand
and display more information and possible app actions right from the notification.[90]
An All Apps screen lists all installed applications, with the ability for users to drag an app from the
list onto the home screen. A Recents screen lets users switch between recently used apps.[85]
Applications
Many, to almost all, Android devices come with preinstalled Google apps including Gmail,
Google Maps, Google Chrome, YouTube, Google Play Music, Google Play Movies & TV, and
many more.
See also: Android software development and Google Play
Applications ("apps"), which extend the functionality of devices, are written using the Android
software development kit (SDK)[91] and, often, the Java programming language.[92] Java may be
combined with C/C++,[93] together with a choice of non-default runtimes that allow better C++
support.[94] The Go programming language is also supported, although with a limited set
of application programming interfaces (API).[95] In May 2017, Google announced support for
Android app development in the Kotlin programming language.[96][97]
The SDK includes a comprehensive set of development tools,[98] including a debugger, software
libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials.
Initially, Google's supported integrated development environment (IDE) was Eclipse using the
Android Development Tools (ADT) plugin; in December 2014, Google released Android Studio,
based on IntelliJ IDEA, as its primary IDE for Android application development. Other
development tools are available, including a native development kit (NDK) 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. In January 2014, Google unveiled
an framework based on Apache Cordova for porting Chrome HTML 5 web applications to
Android, wrapped in a native application shell.[99] Additionally, Firebase was acquired by Google
in 2014 that provides helpful tools for app and web developers.[100][101]
Android has a growing selection of third-party applications, which can be acquired by users by
downloading and installing the application's APK (Android application package) file, or by
downloading them using an application store program that allows users to install, update, and
remove applications from their devices. Google Play Store is the primary application store
installed on Android devices that comply with Google's compatibility requirements and license
the Google Mobile Services software.[102][103] Google Play Store allows users to browse, download
and update applications published by Google and third-party developers; as of July 2013, there
are more than one million applications available for Android in Play Store.[104] As of July 2013,
50 billion applications have been installed.[105][106] Some carriers offer direct carrier billing for
Google Play application purchases, where the cost of the application is added to the user's
monthly bill.[107] As of May 2017, there are over one billion active users a month for Gmail,
Android, Chrome, Google Play and Maps.
Due to the open nature of Android, a number of third-party application marketplaces also exist for
Android, either to provide a substitute for devices that are not allowed to ship with Google Play
Store, provide applications that cannot be offered on Google Play Store due to policy violations,
or for other reasons. Examples of these third-party stores have included the Amazon
Appstore, GetJar, and SlideMe. F-Droid, another alternative marketplace, seeks to only provide
applications that are distributed under free and open source licenses.[102][108][109][110]
Memory management
Since Android devices are usually battery-powered, Android is designed to manage processes to
keep power consumption at a minimum. When an application is not in use the system suspends
its operation so that, while available for immediate use rather than closed, it does not use battery
power or CPU resources.[111][112] Android manages the applications stored in memory
automatically: when memory is low, the system will begin invisibly and automatically closing
inactive processes, starting with those that have been inactive for the longest amount of time.[113]
[114]
Lifehacker reported in 2011 that third-party task killer applications were doing more harm than
good.[115]
Hardware
See also: Android hardware requirements
The main hardware platform for Android is ARM (the ARMv7 and ARMv8-A architectures),
with x86 and x86-64 architectures also officially supported in later versions of Android.[116][117][118]
[119]
The unofficial Android-x86 project provided support for x86 architectures ahead of the official
support.[120][121] The ARMv5TE and MIPS32/64 architectures were also historically supported but
removed in later Android releases.[122] Since 2012, Android devices with Intel processors began to
appear, including phones[123] and tablets. While gaining support for 64-bit platforms, Android was
first made to run on 64-bit x86 and then on ARM64. Since Android 5.0 "Lollipop", 64-bit variants
of all platforms are supported in addition to the 32-bit variants.[116]
Requirements for the minimum amount of RAM for devices running Android 7.1 range from in
practice 2 GB for best hardware, down to 1 GB for the most common screen, to absolute
minimum 512 MB for the lowest spec 32-bit smartphone. The recommendation for Android 4.4 is
to have at least 512 MB of RAM,[124] while for "low RAM" devices 340 MB is the required minimum
amount that does not include memory dedicated to various hardware components such as
the baseband processor.[125] Android 4.4 requires a 32-bit ARMv7, MIPS or x86 architecture
processor (latter two through unofficial ports),[120][121] together with an OpenGL ES 2.0
compatible graphics processing unit (GPU).[126] Android supports OpenGL ES 1.1, 2.0, 3.0, 3.1
and as of latest major version, 3.2 and since Android 7.0 Vulkan (and version 1.1 available for
some devices[127]). Some applications may explicitly require a certain version of the OpenGL ES,
and suitable GPU hardware is required to run such applications.[126]
Android devices incorporate many optional hardware components, including still or video
cameras, GPS, orientation sensors, dedicated gaming controls, accelerometers, gyroscopes,
barometers, magnetometers, proximity sensors, pressure sensors, thermometers,
and touchscreens. Some hardware components are not required, but became standard in certain
classes of devices, such as smartphones, and additional requirements apply if they are present.
Some other hardware was initially required, but those requirements have been relaxed or
eliminated altogether. For example, as Android was developed initially as a phone OS, hardware
such as microphones were required, while over time the phone function became optional.
[106]
Android used to require an autofocus camera, which was relaxed to a fixed-focus camera[106] if
present at all, since the camera was dropped as a requirement entirely when Android started to
be used on set-top boxes.
In addition to running on smartphones and tablets, several vendors run Android natively on
regular PC hardware with a keyboard and mouse.[128][129][130][131] In addition to their availability on
commercially available hardware, similar PC hardware-friendly versions of Android are freely
available from the Android-x86 project, including customized Android 4.4.[132] Using the
Android emulator that is part of the Android SDK, or third-party emulators, Android can also run
non-natively on x86 architectures.[133][134] Chinese companies are building a PC and mobile
operating system, based on Android, to "compete directly with Microsoft Windows and Google
Android".[135] The Chinese Academy of Engineering noted that "more than a dozen" companies
were customising Android following a Chinese ban on the use of Windows 8 on government PCs.
[136][137][138]
Development
The stack of Android Open Source Project
Android is developed by Google until the latest changes and updates are ready to be released, at
which point the source code is made available to the Android Open Source Project (AOSP),
[139]
an open source initiative led by Google.[140] The AOSP code can be found without modification
on select devices, mainly the Google Nexus and Google Pixel series of devices.[141] The source
code is, in turn, customized by original equipment manufacturers (OEMs) to run on their
hardware.[142][143] Android's source code does not contain the device drivers, often proprietary, that
are needed for certain hardware components.[144] As a result, most Android devices, including
Google's own, ship with a combination of free and open source and proprietary software, with the
software required for accessing Google services falling into the latter category.