Android (operating system)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Android
Android robot 2014.svg
Android logo (2014).svg
300px
Android 7.1 Nougat home screen
Developer
Written in Java (UI), C (core), C++[1]
OS family Unix-like
Working state Current
Source model Open source and in most devices with proprietary components
Initial release September 23, 2008; 15 years ago (2008-09-23)[2]
Latest release 7.1.2 "Nougat" / April 4, 2017; 6 years ago (2017-04-04)
Marketing target Smartphones, tablet computers, Android TV, Android Auto and Android Wear
Package manager APK (Primarily through Google Play) and installing apks from alternative sources such as F-Droid.)
Platforms 32- and 64-bit ARM, x86, x86-64, MIPS and MIPS64
Kernel type Monolithic (modified Linux kernel)
Userland Bionic libc,[3] mksh shell,[4] Toybox as core utilities beginning with Android 6.0,[5][6] previously native core utilities with a few from NetBSD[7][8]
Default user interface Graphical (multi-touch)
License Apache License 2.0
GNU GPL v2 for the Linux kernel modifications[9]
Official website android.com

Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android's user interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard for text input. In addition to touchscreen devices, Google has further developed Android TV for televisions, Android Auto for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants of Android are also used on notebooks, game consoles, digital cameras, and other electronics.

Initially developed by Android Inc., which Google bought in 2005, Android was unveiled in 2007, along with the founding of the Open Handset Alliance – a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Beginning with the first commercial Android device in September 2008, the operating system has gone through multiple major releases, with the current version being 7.0 "Nougat", released in August 2016. Android applications ("apps") can be downloaded from the Google Play store, which features over 2.7 million apps as of February 2017. Android has been the best-selling OS on tablets since 2013, and runs on the vast majority[lower-alpha 1] of smartphones. In September 2015, Android had 1.4 billion monthly active users, and it has the largest installed base of any operating system.

Android's source code is released by Google under an open source license, although most Android devices ultimately ship with a combination of free and open source and proprietary software, including proprietary software required for accessing Google services. Android is popular with technology companies that require a ready-made, low-cost and customizable operating system for high-tech devices. Its open nature has encouraged a large community of developers and enthusiasts to use the open-source code as a foundation for community-driven projects, which deliver updates to older devices, add new features for advanced users or bring Android to devices originally shipped with other operating systems. The extensive variation of hardware in Android devices causes significant delays for software upgrades, with new versions of the operating system and security patches typically taking months before reaching consumers, or sometimes not at all. The success of Android has made it a target for patent and copyright litigation as part of the so-called "smartphone wars" between technology companies.

History

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Former Android logo wordmark (2007-2014)

Android Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin, Rich Miner, Nick Sears, and Chris White.[10][11] Rubin described the Android project as "tremendous potential in developing smarter mobile devices that are more aware of its owner's location and preferences".[11] The early intentions of the company were to develop an advanced operating system for digital cameras. Though, when it was realized that the market for the devices was not large enough, the company diverted its efforts toward producing a smartphone operating system that would rival Symbian and Microsoft Windows Mobile.[12] Despite the past accomplishments of the founders and early employees, Android Inc. operated secretly, revealing only that it was working on software for mobile phones.[11] That same year, Rubin ran out of money. Steve Perlman, a close friend of Rubin, brought him $10,000 in cash in an envelope and refused a stake in the company.[13]

In July 2005,[11] Google acquired Android Inc. for at least $50 million.[14] Its key employees, including Rubin, Miner and White, joined Google as part of the acquisition.[11] Not much was known about Android at the time, with Rubin having only stated that they were "making software for mobile phones".[11] 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.[15] 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".[16]

Speculation about Google's intention to enter the mobile communications market continued to build through December 2006.[17] 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".[18][19] 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".[20] In September 2007, InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony.[21][22]

Eric Schmidt, Andy Rubin and Hugo Barra at a 2012 press conference announcing Google's Nexus 7 tablet

On November 5, 2007, the Open Handset Alliance, a consortium of technology companies including Google, device manufacturers such as HTC, Motorola and Samsung, wireless carriers such as Sprint and T-Mobile, and chipset makers such as Qualcomm and Texas Instruments, unveiled itself, with a goal to develop "the first truly open and comprehensive platform for mobile devices".[23][24][25] The first commercially available smartphone running Android was the HTC Dream, also known as T-Mobile G1, announced on September 23, 2008.[26][27]

Since 2008, Android has seen numerous updates which have incrementally improved the operating system, adding new features and fixing bugs in previous releases. Each major release is named in alphabetical order after a dessert or sugary treat, with the first few Android versions being called "Cupcake", "Donut", "Eclair", and "Froyo", respectively. During its announcement of Android KitKat in 2013, Google explained that "Since these devices make our lives so sweet, each Android version is named after a dessert", although a Google spokesperson told CNN in an interview that "It’s kind of like an internal team thing, and we prefer to be a little bit — how should I say — a bit inscrutable in the matter, I’ll say".[28]

In 2010, Google launched its Nexus series of devices, a lineup in which Google partnered with different device manufacturers to produce new devices and introduce new Android versions. The series was described as having "played a pivotal role in Android's history by introducing new software iterations and hardware standards across the board", and became known for its "bloat-free" software with "timely [...] updates".[29] At its developer conference in May 2013, Google announced a special version of the Samsung Galaxy S4, where, instead of using Samsung's own Android customization, the phone ran "stock Android" and was promised to receive new system updates fast.[30] The device would become the start of the Google Play edition program, and was followed by other devices, including the HTC One Google Play edition,[31] and Moto G Google Play edition.[32] In 2015, Ars Technica wrote that "Earlier this week, the last of the Google Play edition Android phones in Google's online storefront were listed as "no longer available for sale"" and that "Now they're all gone, and it looks a whole lot like the program has wrapped up".[33][34]

From 2008 to 2013, Hugo Barra served as product spokesperson, representing Android at press conferences and Google I/O, Google’s annual developer-focused conference. He left Google in August 2013 to join Chinese phone maker Xiaomi.[35][36] Less than six months earlier, Google's then-CEO Larry Page announced in a blog post that Andy Rubin had moved from the Android division to take on new projects at Google, and that Sundar Pichai would become the new Android lead.[37][38] Pichai himself would eventually switch positions, becoming the new CEO of Google in August 2015 following the company's restructure into the Alphabet conglomerate,[39][40] making Hiroshi Lockheimer the new head of Android.[41][42]

In June 2014, Google announced Android One, a set of "hardware reference models" that would "allow [device makers] to easily create high-quality phones at low costs", designed for consumers in developing countries.[43][44][45] In September, Google announced the first set of Android One phones for release in India.[46][47] However, Recode reported in June 2015 that the project was "a disappointment", citing "reluctant consumers and manufacturing partners" and "misfires from the search company that has never quite cracked hardware".[48] Plans to relaunch Android One surfaced in August 2015,[49] with Africa announced as the next location for the program a week later.[50][51] A report from The Information in January 2017 stated that Google was "expanding its “Android One” program for low-cost smartphones to the U.S in coming months".[52][53]

Google introduced the Pixel and Pixel XL smartphones in October 2016, marketed as being the first phones made by Google,[54][55] and exclusively featured certain software features, such as the Google Assistant, before wider rollout.[56][57] The Pixel phones replaced the Nexus series,[58] and Rick Osterloh, Google's senior vice president of hardware, confirmed in March 2017 that a sequel to the Pixel is coming later in 2017.[59]

Features

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

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.[60] Game controllers and full-size physical keyboards are supported via Bluetooth or USB.[61][62] 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,[63] or allowing the user to steer a vehicle in a racing game by rotating the device, simulating control of a steering wheel.[64]

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.[65] A homescreen may be made up of several pages, between which the user can swipe back and forth.[66] Third-party apps available on Google Play and other app stores can extensively re-theme the homescreen,[67] and even mimic the look of other operating systems, such as Windows Phone.[68] Most manufacturers customize the look and features of their Android devices to differentiate themselves from their competitors.[69]

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.[66] 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.[70] 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.[71]

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.[66]

Applications

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Applications ("apps"), which extend the functionality of devices, are written using the Android software development kit (SDK)[72] and, often, the Java programming language.[73] Java may be combined with C/C++,[74] together with a choice of non-default runtimes that allow better C++ support.[75] The Go programming language is also supported, although with a limited set of application programming interfaces (API).[76]

The SDK includes a comprehensive set of development tools,[77] 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.[78]

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.[79][80] 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.[81] As of July 2013, 50 billion applications have been installed.[82][83] 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.[84]

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.[79][85][86][87]

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.[88][89] 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 longest.[90][91] Lifehacker reported in 2011 that third-party task killers were doing more harm than good.[92]

Virtual reality

At Google I/O on May 2016, Google announced Daydream, a virtual reality platform that relies on a smartphone and provides VR capabilities through a virtual reality headset and controller designed by Google itself.[93] The platform is built into Android starting with Android Nougat, differentiating from standalone support for VR capabilities. The software is available for developers, and was released in 2016.

Hardware

File:HTC Android T-Mobile G1.jpg
HTC Dream or T-Mobile G1, the first commercially released device running Android (2008).

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

The main hardware platform for Android is the ARM (ARMv7 and ARMv8-A architectures), with x86, MIPS and MIPS64, and x86-64 architectures also officially supported in later versions of Android.[94][95][96] The unofficial Android-x86 project provided support for the x86 architectures ahead of the official support.[97][98] MIPS architecture was also supported before Google did. Since 2012, Android devices with Intel processors began to appear, including phones[99] 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.[94]

Requirements for the minimum amount of RAM for devices running Android 5.1 range from 512 MB of RAM for normal-density screens, to about 1.8 GB for high-density screens.[100] The recommendation for Android 4.4 is to have at least 512 MB of RAM,[101] 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.[102] Android 4.4 requires a 32-bit ARMv7, MIPS or x86 architecture processor (latter two through unofficial ports),[97][103] together with an OpenGL ES 2.0 compatible graphics processing unit (GPU).[104] Android supports OpenGL ES 1.1, 2.0, 3.0, 3.1 and as of latest major version, 3.2 and Vulkan. Some applications may explicitly require a certain version of the OpenGL ES, and suitable GPU hardware is required to run such applications.[104]

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.[83] Android used to require an autofocus camera, which was relaxed to a fixed-focus camera[83] 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.[105][106][107][108] 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.[109] Using the Android emulator that is part of the Android SDK, or third-party emulators, Android can also run non-natively on x86 architectures.[110][111] Chinese companies are building a PC and mobile operating system, based on Android, to "compete directly with Microsoft Windows and Google Android".[112] 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.[113][114][115]

Development

Android green figure, next to its original packaging

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.[116] This source code can be found without modification on select devices, mainly the Nexus series of devices.[117] The source code is, in turn, adapted by original equipment manufacturers (OEMs) to run on their hardware.[118][119] Android's source code does not contain the often proprietary device drivers that are needed for certain hardware components.[120]

In 2007, the green Android logo was designed for Google by graphic designer Irina Blok. The design team was tasked with a project to create a universally identifiable icon with the specific inclusion of a robot in the final design. After numerous design developments based on science fiction and space movies, the team eventually sought inspiration from the human symbol on restroom doors and modified the figure into a robot shape. As Android is open-source, it was agreed that the logo should be likewise, and since its launch the green logo has been reinterpreted into countless variations on the original design.[121]

Update schedule

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Google announces major incremental upgrades to Android on a yearly basis.[122] The updates can be installed on devices over-the-air.[123] The latest major release is 7.0 "Nougat", announced in March 2016,[124] and released the following August.[125][126]

Compared to its primary rival mobile operating system, Apple's iOS, Android updates typically reach various devices with significant delays. Except for devices with the Google Nexus brand, updates often arrive months after the release of the new version, or not at all.[127] This is partly due to the extensive variation in hardware in Android devices,[128] to which each upgrade must be specifically tailored, a time- and resource-consuming process.[129] Manufacturers often prioritize their newest devices and leave old ones behind.[130] Additional delays can be introduced by wireless carriers that, after receiving updates from manufacturers, further customize and brand Android to their needs and conduct extensive testing on their networks before sending the upgrade out to users.[130][131] There are also situations in which upgrades are not possible due to one manufacturing partner not providing necessary updates to drivers.[132]

The lack of after-sale support from manufacturers and carriers has been widely criticized by consumer groups and the technology media.[133][134][135] Some commentators have noted that the industry has a financial incentive not to upgrade their devices, as the lack of updates for existing devices fuels the purchase of newer ones,[136] an attitude described as "insulting".[135] The Guardian complained that the method of distribution for updates is complicated only because manufacturers and carriers have designed it that way.[135] In 2011, Google partnered with a number of industry players to announce an "Android Update Alliance", pledging to deliver timely updates for every device for 18 months after its release; however, there has not been another official word about that alliance since its announcement.[130][137]

In 2012, Google began decoupling certain aspects of the operating system (particularly its core applications) so they could be updated through the Google Play store independently of the OS. One of those components, Google Play Services, is a closed-source system-level process providing APIs for Google services, installed automatically on nearly all devices running Android 2.2 "Froyo" and higher. With these changes, Google can add new system functionality through Play Services and update apps without having to distribute an upgrade to the operating system itself.[138] As a result, Android 4.2 and 4.3 "Jelly Bean" contained relatively fewer user-facing changes, focusing more on minor changes and platform improvements.[139]

In May 2016, Bloomberg reported that Google was making efforts to keep Android more up-to-date, including accelerated rates of security updates, rolling out technological workarounds, reducing requirements for phone testing, and ranking phone makers in an attempt to "shame" them into better behavior. As stated by Bloomberg: "As smartphones get more capable, complex and hackable, having the latest software work closely with the hardware is increasingly important". Hiroshi Lockheimer, the Android lead, admitted that "It’s not an ideal situation", further commenting that the lack of updates is "the weakest link on security on Android". Wireless carriers were described in the report as the "most challenging discussions", due to carriers' slow approval time due to testing on their networks, despite some carriers, including Verizon and Sprint, having already shortened their respective approval times. HTC's then-executive Jason Mackenzie called monthly security updates "unrealistic" in 2015, and Google was trying to persuade carriers to exclude security patches from the full testing procedures. In a further effort for persuasion, Google shared a list of top phone makers measured by updated devices with its Android partners, and is considering making the list public. Mike Chan, co-founder of phone maker Nextbit and former Android developer, said that "The best way to solve this problem is a massive re-architecture of the operating system", "or Google could invest in training manufacturers and carriers "to be good Android citizens"".[140][141][142]

Linux kernel

Android's kernel is based on one of the Linux kernel's long-term support (LTS) branches. Since April 2014, Android devices mainly use versions 3.4, 3.10 or 3.18 of the Linux kernel.[143][144] The specific kernel version depends on the actual Android device and its hardware platform;[145][146][147] Android has used various kernel versions since the version 2.6.25 that was used in Android 1.0.[148]

Android's variant of the Linux kernel has further architectural changes that are implemented by Google outside the typical Linux kernel development cycle, such as the inclusion of components like Binder, ashmem, pmem, logger, wakelocks, and different out-of-memory (OOM) handling.[149][150][151] Certain features that Google contributed back to the Linux kernel, notably a power management feature called "wakelocks", were rejected by mainline kernel developers partly because they felt that Google did not show any intent to maintain its own code.[152][153][154] Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[155] but Greg Kroah-Hartman, the current Linux kernel maintainer for the stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux.[153] Some Google Android developers hinted that "the Android team was getting fed up with the process," because they were a small team and had more urgent work to do on Android.[156]

In August 2011, Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years".[157] In December 2011, Greg Kroah-Hartman announced the start of Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3.[158] Linux included the autosleep and wakelocks capabilities in the 3.5 kernel, after many previous attempts at merger. The interfaces are the same but the upstream Linux implementation allows for two different suspend modes: to memory (the traditional suspend that Android uses), and to disk (hibernate, as it is known on the desktop).[159] Google maintains a public code repository that contains their experimental work to re-base Android off the latest stable Linux versions.[160][161]

The flash storage on Android devices is split into several partitions, such as /system for the operating system itself, and /data for user data and application installations.[162] In contrast to desktop Linux distributions, Android device owners are not given root access to the operating system and sensitive partitions such as /system are read-only. However, root access can be obtained by exploiting security flaws in Android, which is used frequently by the open-source community to enhance the capabilities of their devices,[163] but also by malicious parties to install viruses and malware.[164]

Android is a Linux distribution according to the Linux Foundation,[165] Google's open-source chief Chris DiBona,[166] and several journalists.[167][168] Others, such as Google engineer Patrick Brady, say that Android is not Linux in the traditional Unix-like Linux distribution sense; Android does not include the GNU C Library (it uses Bionic as an alternative C library) and some of other components typically found in Linux distributions.[169]

Software stack

Android's architecture diagram

On top of the Linux kernel, there are the middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries. Development of the Linux kernel continues independently of other Android's source code bases.

Until version 5.0, Android used Dalvik as a process virtual machine with trace-based just-in-time (JIT) compilation to run Dalvik "dex-code" (Dalvik Executable), which is usually translated from the Java bytecode. Following the trace-based JIT principle, in addition to interpreting the majority of application code, Dalvik performs the compilation and native execution of select frequently executed code segments ("traces") each time an application is launched.[170][171][172] Android 4.4 introduced Android Runtime (ART) as a new runtime environment, which uses ahead-of-time (AOT) compilation to entirely compile the application bytecode into machine code upon the installation of an application. In Android 4.4, ART was an experimental feature and not enabled by default; it became the only runtime option in the next major version of Android, 5.0.[173]

For its Java library, the Android platform uses a subset of the now discontinued Apache Harmony project.[174] In December 2015, Google announced that the next version of Android would switch to a Java implementation based on OpenJDK.[175]

Android's standard C library, Bionic, was developed by Google specifically for Android, as a derivation of the BSD's standard C library code. Bionic itself has been designed with several major features specific to the Linux kernel. The main benefits of using Bionic instead of the GNU C Library (glibc) or uClibc are its smaller runtime footprint, and optimization for low-frequency CPUs. At the same time, Bionic is licensed under the terms of the BSD licence, which Google finds more suitable for the Android's overall licensing model.[172]

Aiming for a different licensing model, toward the end of 2012, Google switched the Bluetooth stack in Android from the GPL-licensed BlueZ to the Apache-licensed BlueDroid.[176]

Android does not have a native X Window System by default, nor does it support the full set of standard GNU libraries. This made it difficult to port existing Linux applications or libraries to Android,[169] until version r5 of the Android Native Development Kit brought support for applications written completely in C or C++.[177] Libraries written in C may also be used in applications by injection of a small shim and usage of the JNI.[178]

Since Marshmallow, "Toybox", a collection of command line utilities (mostly for use by apps, as Android doesn't provide a command line interface by default), replaced similar "Toolbox" collection.[179]

Android has another operating system, Trusty OS, within it, as a part of "Trusty" "software components supporting a Trusted Execution Environment (TEE) on mobile devices." "Trusty and the Trusty API are subject to change. [..] Applications for the Trusty OS can be written in C/C++ (C++ support is limited), and they have access to a small C library. [..] All Trusty applications are single-threaded; multithreading in Trusty userspace currently is unsupported. [..] Third-party application development is not supported in" the current version, and software running on the OS and processor for it, run the "DRM framework for protected content. [..] There are many other uses for a TEE such as mobile payments, secure banking, full-disk encryption, multi-factor authentication, device reset protection, replay-protected persistent storage, wireless display ("cast") of protected content, secure PIN and fingerprint processing, and even malware detection."[180]

Open-source community

Android has an active community of developers and enthusiasts who use the Android Open Source Project (AOSP) source code to develop and distribute their own modified versions of the operating system.[181] These community-developed releases often bring new features and updates to devices faster than through the official manufacturer/carrier channels, with a comparable level of quality;[182] provide continued support for older devices that no longer receive official updates; or bring Android to devices that were officially released running other operating systems, such as the HP TouchPad. Community releases often come pre-rooted and contain modifications not provided by the original vendor, such as the ability to overclock or over/undervolt the device's processor.[183] CyanogenMod was the most widely used community firmware,[184] and CyanogenMod has been discontinued and LineageOS is the successor of CyanogenMod.[185] Android-x86 is a version of Android for IBM PC compatibles. There have also been attempts with varying degrees of success to port Android to iPhones, notably the iDroid Project.[186]

Historically, device manufacturers and mobile carriers have typically been unsupportive of third-party firmware development. Manufacturers express concern about improper functioning of devices running unofficial software and the support costs resulting from this.[187] Moreover, modified firmwares such as CyanogenMod sometimes offer features, such as tethering, for which carriers would otherwise charge a premium. As a result, technical obstacles including locked bootloaders and restricted access to root permissions are common in many devices. However, as community-developed software has grown more popular, and following a statement by the Librarian of Congress in the United States that permits the "jailbreaking" of mobile devices,[188] manufacturers and carriers have softened their position regarding third party development, with some, including HTC,[187] Motorola,[189] Samsung[190][191] and Sony,[192] providing support and encouraging development. As a result of this, over time the need to circumvent hardware restrictions to install unofficial firmware has lessened as an increasing number of devices are shipped with unlocked or unlockable bootloaders, similar to Nexus series of phones, although usually requiring that users waive their devices' warranties to do so.[187] However, despite manufacturer acceptance, some carriers in the US still require that phones are locked down, frustrating developers and customers.[193]

Security and privacy

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Scope of surveillance by public institutions

As part of the broader 2013 mass surveillance disclosures it was revealed in September 2013 that the American and British intelligence agencies, the National Security Agency (NSA) and Government Communications Headquarters (GCHQ), respectively, have access to the user data on iPhone, BlackBerry, and Android devices. They are reportedly able to read almost all smartphone information, including SMS, location, emails, and notes.[194] In January 2014, further reports revealed the intelligence agencies' capabilities to intercept the personal information transmitted across the Internet by social networks and other popular applications such as Angry Birds, which collect personal information of their users for advertising and other commercial reasons. GCHQ has, according to The Guardian, a wiki-style guide of different apps and advertising networks, and the different data that can be siphoned from each.[195] Later that week, the Finnish Angry Birds developer Rovio announced that it was reconsidering its relationships with its advertising platforms in the light of these revelations, and called upon the wider industry to do the same.[196]

The documents revealed a further effort by the intelligence agencies to intercept Google Maps searches and queries submitted from Android and other smartphones to collect location information in bulk.[195] The NSA and GCHQ insist their activities are in compliance with all relevant domestic and international laws, although the Guardian stated "the latest disclosures could also add to mounting public concern about how the technology sector collects and uses information, especially for those outside the US, who enjoy fewer privacy protections than Americans."[195]

Common security threats

Research from security company Trend Micro lists premium service abuse as the most common type of Android malware, where text messages are sent from infected phones to premium-rate telephone numbers without the consent or even knowledge of the user. Other malware displays unwanted and intrusive advertisements on the device, or sends personal information to unauthorised third parties.[197] Security threats on Android are reportedly growing exponentially; however, Google engineers have argued that the malware and virus threat on Android is being exaggerated by security companies for commercial reasons,[198][199] and have accused the security industry of playing on fears to sell virus protection software to users.[198] Google maintains that dangerous malware is actually extremely rare,[199] and a survey conducted by F-Secure showed that only 0.5% of Android malware reported had come from the Google Play store.[200]

In August 2015, Google announced that devices in the Google Nexus series would begin to receive monthly security patches. Google also wrote that "Nexus devices will continue to receive major updates for at least two years and security patches for the longer of three years from initial availability or 18 months from last sale of the device via the Google Store."[201][202][203] The following October, researchers at the University of Cambridge concluded that 87.7% of Android phones in use had known but unpatched security vulnerabilities due to lack of updates and support.[204][205][206] Ron Amadeo of Ars Technica wrote also in August 2015 that "Android was originally designed, above all else, to be widely adopted. Google was starting from scratch with zero percent market share, so it was happy to give up control and give everyone a seat at the table in exchange for adoption. [...] Now, though, Android has around 75-80 percent of the worldwide smartphone market—making it not just the world's most popular mobile operating system but arguably the most popular operating system, period. As such, security has become a big issue. Android still uses a software update chain-of-command designed back when the Android ecosystem had zero devices to update, and it just doesn't work".[207] Following news of Google's monthly schedule, some manufacturers, including Samsung and LG, promised to issue monthly security updates,[208] but, as noted by Jerry Hildenbrand in Android Central in February 2016, "instead we got a few updates on specific versions of a small handful of models. And a bunch of broken promises".[209]

In a March 2017 post on Google's Security Blog, Android security leads Adrian Ludwig and Mel Miller wrote that "More than 735 million devices from 200+ manufacturers received a platform security update in 2016" and that "Our carrier and hardware partners helped expand deployment of these updates, releasing updates for over half of the top 50 devices worldwide in the last quarter of 2016". They also wrote that "About half of devices in use at the end of 2016 had not received a platform security update in the previous year", stating that their work would continue to focus on streamlining the security updates program for easier deployment by manufacturers.[210] Furthermore, in a comment to TechCrunch, Ludwig stated that the wait time for security updates had been reduced from "six to nine weeks down to just a few days", with 78% of flagship devices in North America being up-to-date on security at the end of 2016.[211]

Patches to bugs found in the core operating system often do not reach users of older and lower-priced devices.[212][213] However, the open-source nature of Android allows security contractors to take existing devices and adapt them for highly secure uses. For example, Samsung has worked with General Dynamics through their Open Kernel Labs acquisition to rebuild Jelly Bean on top of their hardened microvisor for the "Knox" project.[214][215]

Android smartphones have the ability to report the location of Wi-Fi access points, encountered as phone users move around, to build databases containing the physical locations of hundreds of millions of such access points. These databases form electronic maps to locate smartphones, allowing them to run apps like Foursquare, Google Latitude, Facebook Places, and to deliver location-based ads.[216] Third party monitoring software such as TaintDroid,[217] an academic research-funded project, can, in some cases, detect when personal information is being sent from applications to remote servers.[218]

Technical security features

Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed.[219]

Since February 2012, Google has used its Google Bouncer malware scanner to watch over and scan apps available in the Google Play store.[220][221] A "Verify Apps" feature was introduced in November 2012, as part of the Android 4.2 "Jelly Bean" operating system version, to scan all apps, both from Google Play and from third-party sources, for malicious behavior.[222] Originally only doing so during installation, Verify Apps received an update in 2014 to "constantly" scan apps, and in 2017 the feature was made visible to users through a menu in Settings.[223][224]

Before installing an application, the Google Play store displays a list of the requirements an app needs to function. After reviewing these permissions, the user can choose to accept or refuse them, installing the application only if they accept.[225] In Android 6.0 "Marshmallow", the permissions system was changed; apps are no longer automatically granted all of their specified permissions at installation time. An opt-in system is used instead, in which users are prompted to grant or deny individual permissions to an app when they are needed for the first time. Applications remember the grants, which can be revoked by the user at any time.[226][227] The new permissions model is used only by applications developed for Marshmallow using its software development kit (SDK), and older apps will continue to use the previous all-or-nothing approach. Permissions can still be revoked for those apps, though this might prevent them from working properly, and a warning is displayed to that effect.[228][229]

In September 2014, Jason Nova of Android Authority reported on a study by the German security company Fraunhofer AISEC in antivirus software and malware threats on Android. Nova wrote that "The Android operating system deals with software packages by sandboxing them; this does not allow applications to list the directory contents of other apps to keep the system safe. By not allowing the antivirus to list the directories of other apps after installation, applications that show no inherent suspicious behavior when downloaded are cleared as safe. If then later on parts of the app are activated that turn out to be malicious, the antivirus will have no way to know since it is inside the app and out of the antivirus’ jurisdiction". The study by Fraunhofer AISEC, examining antivirus software from Avast, AVG, Bitdefender, ESET, F-Secure, Kaspersky, Lookout, Intel Security (formerly McAfee), Norton, Sophos, and Trend Micro, revealed that "the tested antivirus apps do not provide protection against customized malware or targeted attacks", and that "the tested antivirus apps were also not able to detect malware which is completely unknown to date but does not make any efforts to hide its malignity".[230]

In August 2013, Google announced Android Device Manager, a website that allows users to remotely track, locate, and wipe their Android device,[231][232] with an Android app for the service released in December.[233][234] In December 2016, Google introduced a Trusted Contacts app, letting users request location-tracking of loved ones during emergencies.[235][236]

Licensing

The source code for Android is open-source: it is developed in private by Google, with the source code released publicly when a new version of Android is released. Google publishes most of the code (including network and telephony stacks) under the non-copyleft Apache License version 2.0. which allows modification and redistribution.[237][238] The license does not grant rights to the "Android" trademark, so device manufacturers and wireless carriers have to license it from Google under individual contracts. Associated Linux kernel changes are released under the copyleft GNU General Public License version 2, developed by the Open Handset Alliance, with the source code publicly available at all times. Typically, Google collaborates with a hardware manufacturer to produce a flagship device (part of the Nexus series) featuring the new version of Android, then makes the source code available after that device has been released.[239] The only Android release which was not immediately made available as source code was the tablet-only 3.0 Honeycomb release. The reason, according to Andy Rubin in an official Android blog post, was because Honeycomb was rushed for production of the Motorola Xoom,[240] and they did not want third parties creating a "really bad user experience" by attempting to put onto smartphones a version of Android intended for tablets.[241]

Only the base Android operating system (including some applications) is open-source software, whereas most Android devices ship with a substantial amount of proprietary software, such as Google Mobile Services, which includes applications such as Google Play Store, Google Search, and Google Play Services – a software layer that provides APIs for the integration with Google-provided services, among others. These applications must be licensed from Google by device makers, and can only be shipped on devices which meet its compatibility guidelines and other requirements.[80] Custom, certified distributions of Android produced by manufacturers (such as TouchWiz and HTC Sense) may also replace certain stock Android apps with their own proprietary variants and add additional software not included in the stock Android operating system.[79] There may also be "binary blob" drivers required for certain hardware components in the device.[79][120]

Some stock applications in AOSP code that were formerly used by earlier versions of Android, such as Search, Music, and Calendar, have been abandoned by Google in favor of non-free replacements distributed through Play Store (Google Search, Google Play Music, and Google Calendar) that are no longer open-source. Moreover, open-source variants of some applications also exclude functions that are present in their non-free versions, such as Photosphere panoramas in Camera, and a Google Now page on the default home screen (exclusive to the proprietary version "Google Now Launcher", whose code is embedded within that of the main Google application).[79][242][243][244]

Richard Stallman and the Free Software Foundation have been critical of Android and have recommended the usage of alternatives such as Replicant, because drivers and firmware vital for the proper functioning of Android devices are usually proprietary, and because the Google Play Store application can forcibly install or deinstall applications and, as a result, invite non-free software. although the Free Software Foundation has not found Google to use it for malicious reasons [245][246]

Leverage over manufacturers

Google licenses their Google Mobile Services software, along with Android trademarks, only to hardware manufacturers for devices that meet Google's compatibility standards specified in the Android Compatibility Program document.[247] Thus, forks of Android that make major changes to the operating system itself do not include any of Google's non-free components, stay incompatible with applications that require them, and must ship with an alternative software marketplace in lieu of Google Play Store.[79] Examples of such Android forks are Amazon's Fire OS (which is used on the Kindle Fire line of tablets, and oriented toward Amazon services), the Nokia X Software Platform (a fork used by the Nokia X family, oriented primarily toward Nokia and Microsoft services), and other forks that exclude Google apps due to the general unavailability of Google services in certain regions (such as China).[248][249] In 2014, Google also began to require that all Android devices which license the Google Mobile Services software display a prominent "Powered by Android" logo on their boot screens.[80]

Members of the Open Handset Alliance, which include the majority of Android OEMs, are also contractually forbidden from producing Android devices based on forks of the OS;[79][250] in 2012, Acer Inc. was forced by Google to halt production on a device powered by Alibaba Group's Aliyun OS with threats of removal from the OHA, as Google deemed the platform to be an incompatible version of Android. Alibaba Group defended the allegations, arguing that the OS was a distinct platform from Android (primarily using HTML5 apps), but incorporated portions of Android's platform to allow backwards compatibility with third-party Android software. Indeed, the devices did ship with an application store which offered Android apps; however, the majority of them were pirated.[251][252][253]

Reception

Android-x86 running on an ASUS EeePC netbook; Android has been unofficially ported to traditional PCs for use as a desktop operating system.

Android received a lukewarm reaction when it was unveiled in 2007. Although analysts were impressed with the respected technology companies that had partnered with Google to form the Open Handset Alliance, it was unclear whether mobile phone manufacturers would be willing to replace their existing operating systems with Android.[254] The idea of an open-source, Linux-based development platform sparked interest,[255] but there were additional worries about Android facing strong competition from established players in the smartphone market, such as Nokia and Microsoft, and rival Linux mobile operating systems that were in development.[256] These established players were skeptical: Nokia was quoted as saying "we don't see this as a threat," and a member of Microsoft's Windows Mobile team stated "I don't understand the impact that they are going to have."[257]

Since then Android has grown to become the most widely used smartphone operating system[258][259] and "one of the fastest mobile experiences available."[260] Reviewers have highlighted the open-source nature of the operating system as one of its defining strengths, allowing companies such as Nokia (Nokia X family),[261] Amazon (Kindle Fire), Barnes & Noble (Nook), Ouya, Baidu and others to fork the software and release hardware running their own customised version of Android. As a result, it has been described by technology website Ars Technica as "practically the default operating system for launching new hardware" for companies without their own mobile platforms.[258] This openness and flexibility is also present at the level of the end user: Android allows extensive customisation of devices by their owners and apps are freely available from non-Google app stores and third party websites. These have been cited as among the main advantages of Android phones over others.[258][262]

Despite Android's popularity, including an activation rate three times that of iOS, there have been reports that Google has not been able to leverage their other products and web services successfully to turn Android into the money maker that analysts had expected.[263] The Verge suggested that Google is losing control of Android due to the extensive customization and proliferation of non-Google apps and services – Amazon's Kindle Fire line uses Fire OS, a heavily modified fork of Android which does not include or support any of Google's proprietary components, and requires that users obtain software from its competing Amazon Appstore instead of Play Store.[79] In 2014, in an effort to improve prominence of the Android brand, Google began to require that devices featuring its proprietary components display an Android logo on the boot screen.[80]

Android has suffered from "fragmentation",[264] a situation where the variety of Android devices, in terms of both hardware variations and differences in the software running on them, makes the task of developing applications that work consistently across the ecosystem harder than rival platforms such as iOS where hardware and software varies less. For example, according to data from OpenSignal in July 2013, there were 11,868 models of Android device, numerous different screen sizes and eight Android OS versions simultaneously in use, while the large majority of iOS users have upgraded to the latest iteration of that OS.[265] Critics such as Apple Insider have asserted that fragmentation via hardware and software pushed Android's growth through large volumes of low end, budget-priced devices running older versions of Android. They maintain this forces Android developers to write for the "lowest common denominator" to reach as many users as possible, who have too little incentive to make use of the latest hardware or software features only available on a smaller percentage of devices.[266] However, OpenSignal, who develops both Android and iOS apps, concluded that although fragmentation can make development trickier, Android's wider global reach also increases the potential reward.[265]

Market share

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Research company Canalys estimated in the second quarter of 2009, that Android had a 2.8% share of worldwide smartphone shipments.[267] By the fourth quarter of 2010, this had grown to 33% of the market becoming the top-selling smartphone platform,[268] overtaking Symbian.[269] By the third quarter of 2011, Gartner estimated that more than half (52.5%) of the smartphone sales belonged to Android.[270] By the third quarter of 2012 Android had a 75% share of the global smartphone market according to the research firm IDC.[271]

In July 2011, Google said that 550,000 Android devices were being activated every day,[272] up from 400,000 per day in May,[273] and more than 100 million devices had been activated[274] with 4.4% growth per week.[272] In September 2012, 500 million devices had been activated with 1.3 million activations per day.[275][276] In May 2013, at Google I/O, Sundar Pichai announced that 900 million Android devices had been activated.[277]

Android market share varies by location. In July 2012, "mobile subscribers aged 13+" in the United States using Android were up to 52%,[278] and rose to 90% in China.[279] During the third quarter of 2012, Android's worldwide smartphone shipment market share was 75%,[271] with 750 million devices activated in total. In April 2013 Android had 1.5 million activations per day.[276] As of May 2013, 48 billion applications ("apps") have been installed from the Google Play store,[280] and by September 2013, one billion Android devices have been activated.[281]

As of February 2017, the Google Play store has over 2.7 million Android applications published,[282] and As of May 2016, apps have been downloaded more than 65 billion times.[283] The operating system's success has made it a target for patent litigation as part of the so-called "smartphone wars" between technology companies.[284][285]

Android devices account for more than half of smartphone sales in most markets, including the US, while "only in Japan was Apple on top" (September–November 2013 numbers).[286] At the end of 2013, over 1.5 billion Android smartphones have been sold in the four years since 2010,[287][288] making Android the most sold phone and tablet OS. Three billion Android smartphones are estimated to be sold by the end of 2014 (including previous years). According to Gartner research company, Android-based devices outsold all contenders, every year since 2012.[289] In 2013, it outsold Windows 2.8:1 or by 573 million.[290][291][292] As of 2015, Android has the largest installed base of all operating systems;[14] Since 2013, devices running it also sell more than Windows, iOS and Mac OS X devices combined.[293]

According to StatCounter, which tracks only the use for browsing the web, Android is the most popular mobile operating system since August 2013.[294] Android is the most popular operating system for web browsing in India and several other countries (e.g. virtually all of Asia, with Japan and North Korea exceptions). According to StatCounter, Android is most used on mobile in all African countries, and it stated "mobile usage has already overtaken desktop in several countries including India, South Africa and Saudi Arabia",[295] with virtually all countries in Africa having done so already (except for seven countries, including Egypt), such as Ethiopia and Kenya in which mobile (including tablets) usage is at 90.46% (Android only, accounts for 75.81% of all use there[296]).[297]

While Android phones in the Western world commonly include Google's proprietary add-ons (such as Google Play) to the otherwise open-source operating system, this is increasingly not the case in emerging markets; "ABI Research claims that 65 million devices shipped globally with open-source Android in the second quarter of [2014], up from 54 million in the first quarter"; depending on country, percent of phones estimated to be based only on Android's source code (AOSP), forgoing the Android trademark: Thailand (44%), Philippines (38%), Indonesia (31%), India (21%), Malaysia (24%), Mexico (18%), Brazil (9%).[298]

According to a January 2015 Gartner report, "Android surpassed a billion shipments of devices in 2014, and will continue to grow at a double-digit pace in 2015, with a 26 percent increase year over year." This made it the first time that any general-purpose operating system has reached more than one billion end users within a year: by reaching close to 1.16 billion end users in 2014, Android shipped over four times more than iOS and OS X combined, and over three times more than Microsoft Windows. Gartner expected the whole mobile phone market to "reach two billion units in 2016", including Android.[299] Describing the statistics, Farhad Manjoo wrote in The New York Times that "About one of every two computers sold today is running Android. [It] has become Earth’s dominant computing platform."[14]

According to a Statistica's estimate, Android smartphones had an installed base of 1.8 billion units in 2015, which was 76% of the estimated total number of smartphones worldwide.[300][301][lower-alpha 2] Android has the largest installed base of any mobile operating system and, since 2013, the highest-selling operating system overall[290][293][303][304][305] with sales in 2012, 2013 and 2014[306] close to the installed base of all PCs.[307] In the third quarter of 2015, Android's share of the global smartphone shipment market was 84.7%, the highest ever.[308] As of September 28, 2016, with 52.5% market share, Samsung remains the leading OEM for shipping Android running smartphones and tablets, followed by followed by LG, Huawei, Motorola, Lenovo, Sony, HTC, Asus, Alcatel and Xiaomi.[309]

By August 2016, the two biggest continents have gone mobile-majority, judged by web use ("desktop" has 46.92%–55.16% use worldwide, depending on day of the week, making some weeks desktop-minority;[310] lowest full month was at 50.05%[311]); because of Android (see usage share of operating systems), that has majority use on smartphones in virtually all countries (all continents have gone Android-majority, including North America[312][313] except for Oceania, because of Australia),[314] with few exceptions (all of which have iOS-majority); in the US, Android is close to iOS, having exchanged majority position a few times,[315] Canada and the following are also exceptions: Japan, Philippines, Australia and the only exceptions in Europe are the UK, Switzerland, Belgium and the Nordic countries Denmark, Iceland, Sweden and Norway.[316]

By 2016, Android was on the majority of smartphones in virtually all countries in the world,[317][318] excluding United States and Canada (while including North America continent as a whole[319]), Australia and Japan. A few countries, such as the UK, lose Android-majority if tablets are included.

In September 2015, Google announced that Android had 1.4 billion monthly active users.[320][321]

Adoption on tablets

The first-generation Nexus 7 tablet, running Android 4.1 Jelly Bean

Despite its success on smartphones, initially Android tablet adoption was slow.[322] One of the main causes was the chicken or the egg situation where consumers were hesitant to buy an Android tablet due to a lack of high quality tablet applications, but developers were hesitant to spend time and resources developing tablet applications until there was a significant market for them.[323][324] The content and app "ecosystem" proved more important than hardware specs as the selling point for tablets. Due to the lack of Android tablet-specific applications in 2011, early Android tablets had to make do with existing smartphone applications that were ill-suited to larger screen sizes, whereas the dominance of Apple's iPad was reinforced by the large number of tablet-specific iOS applications.[324][325]

Despite app support in its infancy, a considerable number of Android tablets (alongside those using other operating systems, such as the HP TouchPad and BlackBerry PlayBook) were rushed out to market in an attempt to capitalize on the success of the iPad.[324] InfoWorld has suggested that some Android manufacturers initially treated their first tablets as a "Frankenphone business", a short-term low-investment opportunity by placing a smartphone-optimized Android OS (before Android 3.0 Honeycomb for tablets was available) on a device while neglecting user interface. This approach, such as with the Dell Streak, failed to gain market traction with consumers as well as damaging the early reputation of Android tablets.[326][327] Furthermore, several Android tablets such as the Motorola Xoom were priced the same or higher than the iPad, which hurt sales. An exception was the Amazon Kindle Fire, which relied upon lower pricing as well as access to Amazon's ecosystem of applications and content.[324][328]

This began to change in 2012, with the release of the affordable Nexus 7 and a push by Google for developers to write better tablet applications.[329] According to International Data Corporation, shipments of Android-powered tablets surpassed iPads in Q3 2012.[330]

As of the end of 2013, over 191.6 million Android tablets had sold in three years since 2011.[331][332] This made Android tablets the most-sold type of tablet in 2013, surpassing iPads in the second quarter of 2013.[333]

According to the StatCounter's June 2015 web use statistics, Android tablets represent the majority of tablet devices used on the South American[334] (then lost majority) and African continents (60.23%),[335] while they have equaled with the iPad's market share in major countries on all continents (with the North America as an exception, though in El Salvador Android has the majority[336]), and getting close to representing the majority on the whole Asian continent[337] having done so already in India (65.9%),[338] Indonesia (62.22%),[339] and most Middle-Eastern countries.[340] In about half of the European countries, Android tablets have a majority market share.[341] China is an exception for the major developing countries, in which Android phablets (classified as smartphones while similar in size to tablets) are more popular than Android tablets or iPads.

In March 2016, Galen Gruman of InfoWorld stated that Android devices could be a "real part of your business [..] there's no longer a reason to keep Android at arm's length. It can now be as integral to your mobile portfolio as Apple's iOS devices are".[342] A year earlier, Gruman had stated that Microsoft's own mobile Office apps were "better on iOS and Android" than on Microsoft's own Windows 10 devices.[343]

Platform usage





Circle frame.svg
  Nougat (7.1%)
  Marshmallow (31.2%)
  Lollipop (32.0%)
  KitKat (18.8%)
  Jelly Bean (9.1%)
  Ice Cream Sandwich (0.8%)
  Gingerbread (1.0%)

Charts in this section provide breakdowns of Android versions, based on devices accessing the Google Play Store in a seven-day period ending on May 2, 2017.[344][lower-alpha 3] Therefore, these statistics exclude devices running various Android forks that do not access the Google Play Store, such as Amazon's Fire tablets.

Version Code name Release date API level DVM/ART Distribution First devices to run version
7.1 Nougat October 4, 2016 25 ART 0.5% Pixel, Pixel XL
7.0 August 22, 2016 24 ART 6.6% Nexus 5X, Nexus 6P
6.0 Marshmallow October 5, 2015 23 ART 31.2%
5.1 Lollipop March 9, 2015 22 ART 23.3% Android One
5.0 November 3, 2014 21 ART 2.1.0 8.7% Nexus 6
4.4 KitKat October 31, 2013 19 DVM (and ART 1.6.0) 18.8% Nexus 5
4.3 Jelly Bean July 24, 2013 18 DVM 1.3% Nexus 7 2013
4.2 November 13, 2012 17 DVM 4.6% Nexus 4, Nexus 10
4.1 July 9, 2012 16 DVM 3.2% Nexus 7
4.0 Ice Cream Sandwich December 16, 2011 15 DVM 0.8% Galaxy Nexus
2.3 Gingerbread February 9, 2011 10 DVM 1.4.0 1.0% Nexus S

As of 2017, more than 60% of devices have OpenGL ES 3.0 or higher.

Application piracy

In general, paid Android applications can easily be pirated.[345] In a May 2012 interview with Eurogamer, the developers of Football Manager stated that the ratio of pirated players vs legitimate players was 9:1 for their game Football Manager Handheld.[346] However, not every developer agreed that piracy rates were an issue; for example, in July 2012 the developers of the game Wind-up Knight said that piracy levels of their game were only 12%, and most of the piracy came from China, where people cannot purchase apps from Google Play.[347]

In 2010, Google released a tool for validating authorized purchases for use within apps, but developers complained that this was insufficient and trivial to crack. Google responded that the tool, especially its initial release, was intended as a sample framework for developers to modify and build upon depending on their needs, not as a finished piracy solution.[348] Android "Jelly Bean" introduced the ability for paid applications to be encrypted, so that they may work only on the device for which they were purchased.[349][350]

Legal issues

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Both Android and Android phone manufacturers have been involved in numerous patent lawsuits. On August 12, 2010, Oracle sued Google over claimed infringement of copyrights and patents related to the Java programming language.[351] Oracle originally sought damages up to $6.1 billion,[352] but this valuation was rejected by a United States federal judge who asked Oracle to revise the estimate.[353] In response, Google submitted multiple lines of defense, counterclaiming that Android did not infringe on Oracle's patents or copyright, that Oracle's patents were invalid, and several other defenses. They said that Android's Java runtime environment is based on Apache Harmony, a clean room implementation of the Java class libraries, and an independently developed virtual machine called Dalvik.[354] In May 2012, the jury in this case found that Google did not infringe on Oracle's patents, and the trial judge ruled that the structure of the Java APIs used by Google was not copyrightable.[355][356] The parties agreed to zero dollars in statutory damages for a small amount of copied code.[357] On May 9, 2014, the Federal Circuit partially reversed the district court ruling, ruling in Oracle's favor on the copyrightability issue, and remanding the issue of fair use to the district court.[358][359]

In December 2015, Google announced that the next major release of Android (Android Nougat) would switch to OpenJDK, which is the official open-source implementation of the Java platform, instead of using the now-discontinued Apache Harmony project as its runtime. Code reflecting this change was also posted to the AOSP source repository.[174] In its announcement, Google claimed this was part of an effort to create a "common code base" between Java on Android and other platforms.[175] Google later admitted in a court filing that this was part of an effort to address the disputes with Oracle, as its use of OpenJDK code is governed under the GNU General Public License (GPL) with a linking exception, and that "any damages claim associated with the new versions expressly licensed by Oracle under OpenJDK would require a separate analysis of damages from earlier releases".[174] In June 2016, a United States federal court ruled in favor of Google, stating that its use of the APIs was fair use.[360]

In addition to lawsuits against Google directly, various proxy wars have been waged against Android indirectly by targeting manufacturers of Android devices, with the effect of discouraging manufacturers from adopting the platform by increasing the costs of bringing an Android device to market.[361] Both Apple and Microsoft have sued several manufacturers for patent infringement, with Apple's ongoing legal action against Samsung being a particularly high-profile case. In October 2011, Microsoft said they had signed patent license agreements with ten Android device manufacturers, whose products account for Lua error in package.lua at line 80: module 'strict' not found. and 55% of the worldwide revenue for Android devices.[362] These include Samsung and HTC.[363] Samsung's patent settlement with Microsoft included an agreement to allocate more resources to developing and marketing phones running Microsoft's Windows Phone operating system.[361] Microsoft has also tied its own Android software to patent licenses, requiring the bundling of Microsoft Office Mobile and Skype applications on Android devices to subsidize the licensing fees, while at the same time helping to promote its software lines.[364][365]

Google has publicly expressed its frustration for the current patent landscape in the United States, accusing Apple, Oracle and Microsoft of trying to take down Android through patent litigation, rather than innovating and competing with better products and services.[366] In September 2011, Google purchased Motorola Mobility for US$12.5 billion, which was viewed in part as a defensive measure to protect Android, since Motorola Mobility held more than 17,000 patents.[367] In December 2011, Google bought over a thousand patents from IBM.[368]

In 2013, FairSearch, a lobbying organization supported by Microsoft, Oracle and others, filed a complaint regarding Android with the European Commission, alleging that its free-of-charge distribution model constituted anti-competitive predatory pricing. The Free Software Foundation Europe, whose donors include Google, disputed the Fairsearch allegations.[369] On April 20, 2016, the EU filed a formal antitrust complaint against Google based upon the FairSearch allegations, arguing that its leverage over Android vendors, including the mandatory bundling of the entire suite of proprietary Google software, hindering the ability for competing search providers to be integrated into Android, and barring vendors from producing devices running forks of Android, constituted anti-competitive practices.[370] In August 2016, Google was fined US$6.75 million by the Russian Federal Antimonopoly Service (FAS) under similar allegations by Yandex.[371]

Other uses

Ouya, a video game console which runs Android

Google has developed several variations of Android for specific use cases, including Android Wear for wearable devices such as wrist watches,[372][373] Android TV for televisions,[374][375] Android Auto for cars,[376][377] and Brillo,[378] later renamed Android Things, for smart devices and Internet of things.[379][380]

The open and customizable nature of Android allows device makers to use it on other electronics as well, including laptops and netbooks,[381][382] smartbooks,[383] cameras,[384] headphones,[385] home automation systems, game consoles, mirrors,[386] media players,[387] and landline telephones.[388]

Ouya, a video game console running Android, became one of the most successful Kickstarter campaigns, crowdfunding US$8.5m for its development,[389][390] and was later followed by other Android-based consoles, such as Nvidia's Shield Portable – an Android device in a video game controller form factor.[391]

In 2011, Google demonstrated "Android@Home", a home automation technology which uses Android to control a range of household devices including light switches, power sockets and thermostats.[392] Prototype light bulbs were announced that could be controlled from an Android phone or tablet, but Android head Andy Rubin was cautious to note that "turning a lightbulb on and off is nothing new", pointing to numerous failed home automation services. Google, he said, was thinking more ambitiously and the intention was to use their position as a cloud services provider to bring Google products into customers' homes.[393][394]

Parrot unveiled an Android-based car stereo system known as Asteroid in 2011,[395] followed by a successor, the touchscreen-based Asteroid Smart, in 2012.[396] In 2013, Clarion released its own Android-based car stereo, the AX1.[397] In January 2014, at the Consumer Electronics Show (CES), Google announced the formation of the Open Automotive Alliance, a group including several major automobile makers (Audi, General Motors, Hyundai, and Honda) and Nvidia, which aims to produce Android-based in car entertainment systems for automobiles, "[bringing] the best of Android into the automobile in a safe and seamless way."[398]

Android comes preinstalled on a few laptops (a similar functionality of running Android applications is also available in Google's Chrome OS) and can also be installed on personal computers by end users.[399] On those platforms Android provides additional functionality for physical keyboards[400] and mice, together with the "Alt-Tab" key combination for switching applications quickly with a keyboard. In December 2014, one reviewer commented that Android's notification system is "vastly more complete and robust than in most environments" and that Android is "absolutely usable" as one's primary desktop operating system.[401]

In October 2015, The Wall Street Journal reported that Android will serve as Google's future main laptop operating system, with the plan to fold Chrome OS into it by 2017.[402][403] Google's Sundar Pichai, who led the development of Android, explained that "mobile as a computing paradigm is eventually going to blend with what we think of as desktop today."[402] and back in 2009, Google co-founder Sergey Brin himself said that Chrome OS and Android would "likely converge over time."[404] Lockheimer, who replaced Pichai as head of Android and Chrome OS, responded to this claim with an official Google blog post stating that "While we've been working on ways to bring together the best of both operating systems, there's no plan to phase out Chrome OS [which has] guaranteed auto-updates for five years".[405] That is unlike Android where support is shorter with "EOL dates [being..] at least 3 years [into the future] for Android tablets for education".[406]

See also

<templatestyles src="Div col/styles.css"/>

Notes

  1. 70%+
  2. To put the Statistica's numbers in context: by Strategy Analytics estimates, Windows the most popular "desktop" operating system, has an estimated installed base of about 1.3 billion at best;[302] they also estimate the overall tablet installed base to be already of comparable size to the PC market and predict tablets will have surpassed them by 2018.
  3. Versions accounting for less than 0.1% are not included.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 11.2 11.3 11.4 11.5 Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. 14.0 14.1 14.2 Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found. (subscription required)
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. 66.0 66.1 66.2 Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Lua error in package.lua at line 80: module 'strict' not found.
  73. Lua error in package.lua at line 80: module 'strict' not found.
  74. Lua error in package.lua at line 80: module 'strict' not found.
  75. Lua error in package.lua at line 80: module 'strict' not found.
  76. Lua error in package.lua at line 80: module 'strict' not found.
  77. Lua error in package.lua at line 80: module 'strict' not found.
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. 79.0 79.1 79.2 79.3 79.4 79.5 79.6 79.7 Lua error in package.lua at line 80: module 'strict' not found.
  80. 80.0 80.1 80.2 80.3 Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. 83.0 83.1 83.2 Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Lua error in package.lua at line 80: module 'strict' not found.
  91. Lua error in package.lua at line 80: module 'strict' not found.
  92. Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. 94.0 94.1 Lua error in package.lua at line 80: module 'strict' not found.
  95. Lua error in package.lua at line 80: module 'strict' not found.
  96. Lua error in package.lua at line 80: module 'strict' not found.
  97. 97.0 97.1 Lua error in package.lua at line 80: module 'strict' not found.
  98. Lua error in package.lua at line 80: module 'strict' not found.
  99. Lua error in package.lua at line 80: module 'strict' not found.
  100. Lua error in package.lua at line 80: module 'strict' not found.
  101. Lua error in package.lua at line 80: module 'strict' not found.
  102. Lua error in package.lua at line 80: module 'strict' not found.
  103. Lua error in package.lua at line 80: module 'strict' not found.
  104. 104.0 104.1 Lua error in package.lua at line 80: module 'strict' not found.
  105. Lua error in package.lua at line 80: module 'strict' not found.
  106. Lua error in package.lua at line 80: module 'strict' not found.
  107. Lua error in package.lua at line 80: module 'strict' not found.
  108. Lua error in package.lua at line 80: module 'strict' not found.
  109. Lua error in package.lua at line 80: module 'strict' not found.
  110. Lua error in package.lua at line 80: module 'strict' not found.
  111. Lua error in package.lua at line 80: module 'strict' not found.
  112. Lua error in package.lua at line 80: module 'strict' not found.
  113. Lua error in package.lua at line 80: module 'strict' not found.
  114. Lua error in package.lua at line 80: module 'strict' not found.
  115. Lua error in package.lua at line 80: module 'strict' not found.
  116. Lua error in package.lua at line 80: module 'strict' not found.
  117. Lua error in package.lua at line 80: module 'strict' not found.
  118. Lua error in package.lua at line 80: module 'strict' not found.
  119. Lua error in package.lua at line 80: module 'strict' not found.
  120. 120.0 120.1 Lua error in package.lua at line 80: module 'strict' not found.
  121. Lua error in package.lua at line 80: module 'strict' not found.
  122. Lua error in package.lua at line 80: module 'strict' not found.
  123. Lua error in package.lua at line 80: module 'strict' not found.
  124. Lua error in package.lua at line 80: module 'strict' not found.
  125. Lua error in package.lua at line 80: module 'strict' not found.
  126. Lua error in package.lua at line 80: module 'strict' not found.
  127. Lua error in package.lua at line 80: module 'strict' not found.
  128. Lua error in package.lua at line 80: module 'strict' not found.
  129. Lua error in package.lua at line 80: module 'strict' not found.
  130. 130.0 130.1 130.2 Lua error in package.lua at line 80: module 'strict' not found.
  131. Lua error in package.lua at line 80: module 'strict' not found.
  132. Lua error in package.lua at line 80: module 'strict' not found.
  133. Lua error in package.lua at line 80: module 'strict' not found.
  134. Lua error in package.lua at line 80: module 'strict' not found.
  135. 135.0 135.1 135.2 Lua error in package.lua at line 80: module 'strict' not found.
  136. Lua error in package.lua at line 80: module 'strict' not found.
  137. Lua error in package.lua at line 80: module 'strict' not found.
  138. Lua error in package.lua at line 80: module 'strict' not found.
  139. Lua error in package.lua at line 80: module 'strict' not found.
  140. Lua error in package.lua at line 80: module 'strict' not found.
  141. Lua error in package.lua at line 80: module 'strict' not found.
  142. Lua error in package.lua at line 80: module 'strict' not found.
  143. Lua error in package.lua at line 80: module 'strict' not found.
  144. Lua error in package.lua at line 80: module 'strict' not found.
  145. Lua error in package.lua at line 80: module 'strict' not found.
  146. Lua error in package.lua at line 80: module 'strict' not found.
  147. Lua error in package.lua at line 80: module 'strict' not found.
  148. Lua error in package.lua at line 80: module 'strict' not found.
  149. Lua error in package.lua at line 80: module 'strict' not found.
  150. Lua error in package.lua at line 80: module 'strict' not found.
  151. Lua error in package.lua at line 80: module 'strict' not found.
  152. Lua error in package.lua at line 80: module 'strict' not found.
  153. 153.0 153.1 Lua error in package.lua at line 80: module 'strict' not found.
  154. Lua error in package.lua at line 80: module 'strict' not found.
  155. Lua error in package.lua at line 80: module 'strict' not found.
  156. Lua error in package.lua at line 80: module 'strict' not found.
  157. Lua error in package.lua at line 80: module 'strict' not found.
  158. Lua error in package.lua at line 80: module 'strict' not found.
  159. Lua error in package.lua at line 80: module 'strict' not found.
  160. Lua error in package.lua at line 80: module 'strict' not found.
  161. Lua error in package.lua at line 80: module 'strict' not found.
  162. Lua error in package.lua at line 80: module 'strict' not found.
  163. See rooting
  164. Lua error in package.lua at line 80: module 'strict' not found.
  165. Lua error in package.lua at line 80: module 'strict' not found.
  166. Lua error in package.lua at line 80: module 'strict' not found.
  167. Lua error in package.lua at line 80: module 'strict' not found.
  168. Lua error in package.lua at line 80: module 'strict' not found.
  169. 169.0 169.1 Lua error in package.lua at line 80: module 'strict' not found.
  170. Lua error in package.lua at line 80: module 'strict' not found.
  171. Lua error in package.lua at line 80: module 'strict' not found.
  172. 172.0 172.1 Lua error in package.lua at line 80: module 'strict' not found.
  173. Lua error in package.lua at line 80: module 'strict' not found.
  174. 174.0 174.1 174.2 Lua error in package.lua at line 80: module 'strict' not found.
  175. 175.0 175.1 Lua error in package.lua at line 80: module 'strict' not found.
  176. Lua error in package.lua at line 80: module 'strict' not found.
  177. Lua error in package.lua at line 80: module 'strict' not found.
  178. Lua error in package.lua at line 80: module 'strict' not found.
  179. Android gets a toybox on lwn.net by Jake Edge (January 14, 2015)
  180. Lua error in package.lua at line 80: module 'strict' not found.
  181. Lua error in package.lua at line 80: module 'strict' not found.
  182. Lua error in package.lua at line 80: module 'strict' not found.
  183. Lua error in package.lua at line 80: module 'strict' not found.
  184. Lua error in package.lua at line 80: module 'strict' not found.
  185. Lua error in package.lua at line 80: module 'strict' not found.
  186. Lua error in package.lua at line 80: module 'strict' not found.
  187. 187.0 187.1 187.2 Lua error in package.lua at line 80: module 'strict' not found.
  188. Lua error in package.lua at line 80: module 'strict' not found.
  189. Lua error in package.lua at line 80: module 'strict' not found.
  190. Lua error in package.lua at line 80: module 'strict' not found.
  191. Lua error in package.lua at line 80: module 'strict' not found.
  192. Lua error in package.lua at line 80: module 'strict' not found.
  193. Lua error in package.lua at line 80: module 'strict' not found.
  194. Lua error in package.lua at line 80: module 'strict' not found.
  195. 195.0 195.1 195.2 Lua error in package.lua at line 80: module 'strict' not found.
  196. Lua error in package.lua at line 80: module 'strict' not found.
  197. Lua error in package.lua at line 80: module 'strict' not found.
  198. 198.0 198.1 Lua error in package.lua at line 80: module 'strict' not found.
  199. 199.0 199.1 Lua error in package.lua at line 80: module 'strict' not found.
  200. Lua error in package.lua at line 80: module 'strict' not found.
  201. Lua error in package.lua at line 80: module 'strict' not found.
  202. Lua error in package.lua at line 80: module 'strict' not found.
  203. Lua error in package.lua at line 80: module 'strict' not found.
  204. Lua error in package.lua at line 80: module 'strict' not found.
  205. Lua error in package.lua at line 80: module 'strict' not found.
  206. Lua error in package.lua at line 80: module 'strict' not found.
  207. Lua error in package.lua at line 80: module 'strict' not found.
  208. Lua error in package.lua at line 80: module 'strict' not found.
  209. Lua error in package.lua at line 80: module 'strict' not found.
  210. Lua error in package.lua at line 80: module 'strict' not found.
  211. Lua error in package.lua at line 80: module 'strict' not found.
  212. Lua error in package.lua at line 80: module 'strict' not found.
  213. Lua error in package.lua at line 80: module 'strict' not found.
  214. Lua error in package.lua at line 80: module 'strict' not found.
  215. Lua error in package.lua at line 80: module 'strict' not found.
  216. Lua error in package.lua at line 80: module 'strict' not found.
  217. Lua error in package.lua at line 80: module 'strict' not found.
  218. Lua error in package.lua at line 80: module 'strict' not found.
  219. Lua error in package.lua at line 80: module 'strict' not found.
  220. Lua error in package.lua at line 80: module 'strict' not found.
  221. Lua error in package.lua at line 80: module 'strict' not found.
  222. Lua error in package.lua at line 80: module 'strict' not found.
  223. Lua error in package.lua at line 80: module 'strict' not found.
  224. Lua error in package.lua at line 80: module 'strict' not found.
  225. Lua error in package.lua at line 80: module 'strict' not found.
  226. Lua error in package.lua at line 80: module 'strict' not found.
  227. Lua error in package.lua at line 80: module 'strict' not found.
  228. Lua error in package.lua at line 80: module 'strict' not found.
  229. Lua error in package.lua at line 80: module 'strict' not found.
  230. Lua error in package.lua at line 80: module 'strict' not found.
  231. Lua error in package.lua at line 80: module 'strict' not found.
  232. Lua error in package.lua at line 80: module 'strict' not found.
  233. Lua error in package.lua at line 80: module 'strict' not found.
  234. Lua error in package.lua at line 80: module 'strict' not found.
  235. Lua error in package.lua at line 80: module 'strict' not found.
  236. Lua error in package.lua at line 80: module 'strict' not found.
  237. Lua error in package.lua at line 80: module 'strict' not found.
  238. Lua error in package.lua at line 80: module 'strict' not found.
  239. Lua error in package.lua at line 80: module 'strict' not found.
  240. Lua error in package.lua at line 80: module 'strict' not found.
  241. Lua error in package.lua at line 80: module 'strict' not found.
  242. Lua error in package.lua at line 80: module 'strict' not found.
  243. Lua error in package.lua at line 80: module 'strict' not found.
  244. Lua error in package.lua at line 80: module 'strict' not found.
  245. Lua error in package.lua at line 80: module 'strict' not found.
  246. Lua error in package.lua at line 80: module 'strict' not found.
  247. Lua error in package.lua at line 80: module 'strict' not found.
  248. Lua error in package.lua at line 80: module 'strict' not found.
  249. Lua error in package.lua at line 80: module 'strict' not found.
  250. Lua error in package.lua at line 80: module 'strict' not found.
  251. Lua error in package.lua at line 80: module 'strict' not found.
  252. Lua error in package.lua at line 80: module 'strict' not found.
  253. Lua error in package.lua at line 80: module 'strict' not found.
  254. Lua error in package.lua at line 80: module 'strict' not found.
  255. Lua error in package.lua at line 80: module 'strict' not found.
  256. Lua error in package.lua at line 80: module 'strict' not found.
  257. Lua error in package.lua at line 80: module 'strict' not found.
  258. 258.0 258.1 258.2 Lua error in package.lua at line 80: module 'strict' not found.
  259. Lua error in package.lua at line 80: module 'strict' not found.
  260. Lua error in package.lua at line 80: module 'strict' not found.
  261. Lua error in package.lua at line 80: module 'strict' not found.
  262. Lua error in package.lua at line 80: module 'strict' not found.
  263. Lua error in package.lua at line 80: module 'strict' not found.
  264. Lua error in package.lua at line 80: module 'strict' not found.
  265. 265.0 265.1 Lua error in package.lua at line 80: module 'strict' not found.
  266. Lua error in package.lua at line 80: module 'strict' not found.
  267. Lua error in package.lua at line 80: module 'strict' not found.
  268. Lua error in package.lua at line 80: module 'strict' not found.
  269. Lua error in package.lua at line 80: module 'strict' not found.
  270. Lua error in package.lua at line 80: module 'strict' not found.
  271. 271.0 271.1 Lua error in package.lua at line 80: module 'strict' not found.
  272. 272.0 272.1 Lua error in package.lua at line 80: module 'strict' not found.
  273. Lua error in package.lua at line 80: module 'strict' not found.
  274. Lua error in package.lua at line 80: module 'strict' not found.
  275. Lua error in package.lua at line 80: module 'strict' not found.
  276. 276.0 276.1 Lua error in package.lua at line 80: module 'strict' not found.
  277. Lua error in package.lua at line 80: module 'strict' not found.
  278. Lua error in package.lua at line 80: module 'strict' not found.
  279. Lua error in package.lua at line 80: module 'strict' not found.
  280. Lua error in package.lua at line 80: module 'strict' not found.
  281. Lua error in package.lua at line 80: module 'strict' not found.
  282. Lua error in package.lua at line 80: module 'strict' not found.
  283. Lua error in package.lua at line 80: module 'strict' not found.
  284. Lua error in package.lua at line 80: module 'strict' not found.
  285. Lua error in package.lua at line 80: module 'strict' not found.
  286. Lua error in package.lua at line 80: module 'strict' not found.
  287. Lua error in package.lua at line 80: module 'strict' not found.
  288. Lua error in package.lua at line 80: module 'strict' not found.
  289. Lua error in package.lua at line 80: module 'strict' not found.
  290. 290.0 290.1 Lua error in package.lua at line 80: module 'strict' not found.
  291. Lua error in package.lua at line 80: module 'strict' not found.
  292. Lua error in package.lua at line 80: module 'strict' not found.
  293. 293.0 293.1 Lua error in package.lua at line 80: module 'strict' not found.
  294. Lua error in package.lua at line 80: module 'strict' not found.
  295. Lua error in package.lua at line 80: module 'strict' not found.
  296. Lua error in package.lua at line 80: module 'strict' not found.
  297. Lua error in package.lua at line 80: module 'strict' not found.
  298. Lua error in package.lua at line 80: module 'strict' not found./
  299. Lua error in package.lua at line 80: module 'strict' not found.
  300. Lua error in package.lua at line 80: module 'strict' not found.
  301. Lua error in package.lua at line 80: module 'strict' not found.
  302. Lua error in package.lua at line 80: module 'strict' not found.
  303. Lua error in package.lua at line 80: module 'strict' not found.
  304. Lua error in package.lua at line 80: module 'strict' not found.
  305. Lua error in package.lua at line 80: module 'strict' not found.
  306. Lua error in package.lua at line 80: module 'strict' not found.
  307. Lua error in package.lua at line 80: module 'strict' not found.
  308. Lua error in package.lua at line 80: module 'strict' not found.
  309. Lua error in package.lua at line 80: module 'strict' not found.
  310. Lua error in package.lua at line 80: module 'strict' not found.
  311. Lua error in package.lua at line 80: module 'strict' not found.
  312. Lua error in package.lua at line 80: module 'strict' not found.
  313. Lua error in package.lua at line 80: module 'strict' not found.
  314. Lua error in package.lua at line 80: module 'strict' not found.
  315. Lua error in package.lua at line 80: module 'strict' not found.
  316. Lua error in package.lua at line 80: module 'strict' not found.
  317. Lua error in package.lua at line 80: module 'strict' not found.
  318. Lua error in package.lua at line 80: module 'strict' not found.
  319. Lua error in package.lua at line 80: module 'strict' not found.
  320. Lua error in package.lua at line 80: module 'strict' not found.
  321. Lua error in package.lua at line 80: module 'strict' not found.
  322. Lua error in package.lua at line 80: module 'strict' not found.
  323. Lua error in package.lua at line 80: module 'strict' not found.
  324. 324.0 324.1 324.2 324.3 Lua error in package.lua at line 80: module 'strict' not found.
  325. Lua error in package.lua at line 80: module 'strict' not found.
  326. Lua error in package.lua at line 80: module 'strict' not found.
  327. Lua error in package.lua at line 80: module 'strict' not found.
  328. Lua error in package.lua at line 80: module 'strict' not found.
  329. Lua error in package.lua at line 80: module 'strict' not found.
  330. Lua error in package.lua at line 80: module 'strict' not found.
  331. Lua error in package.lua at line 80: module 'strict' not found.
  332. Lua error in package.lua at line 80: module 'strict' not found.
  333. Lua error in package.lua at line 80: module 'strict' not found.
  334. Lua error in package.lua at line 80: module 'strict' not found.
  335. Lua error in package.lua at line 80: module 'strict' not found.
  336. Lua error in package.lua at line 80: module 'strict' not found.
  337. Lua error in package.lua at line 80: module 'strict' not found.
  338. Lua error in package.lua at line 80: module 'strict' not found.
  339. Lua error in package.lua at line 80: module 'strict' not found.
  340. Lua error in package.lua at line 80: module 'strict' not found.
  341. Lua error in package.lua at line 80: module 'strict' not found.
  342. Lua error in package.lua at line 80: module 'strict' not found. (registration required)
  343. Lua error in package.lua at line 80: module 'strict' not found.
  344. Lua error in package.lua at line 80: module 'strict' not found.
  345. Lua error in package.lua at line 80: module 'strict' not found.
  346. Lua error in package.lua at line 80: module 'strict' not found.
  347. Lua error in package.lua at line 80: module 'strict' not found.
  348. Lua error in package.lua at line 80: module 'strict' not found.
  349. Lua error in package.lua at line 80: module 'strict' not found.
  350. Lua error in package.lua at line 80: module 'strict' not found.
  351. Lua error in package.lua at line 80: module 'strict' not found.
  352. Lua error in package.lua at line 80: module 'strict' not found.
  353. Lua error in package.lua at line 80: module 'strict' not found.
  354. Lua error in package.lua at line 80: module 'strict' not found.
  355. Lua error in package.lua at line 80: module 'strict' not found.
  356. Lua error in package.lua at line 80: module 'strict' not found.
  357. Lua error in package.lua at line 80: module 'strict' not found.
  358. Lua error in package.lua at line 80: module 'strict' not found.
  359. Lua error in package.lua at line 80: module 'strict' not found.
  360. Lua error in package.lua at line 80: module 'strict' not found.
  361. 361.0 361.1 Lua error in package.lua at line 80: module 'strict' not found.
  362. Lua error in package.lua at line 80: module 'strict' not found.
  363. Lua error in package.lua at line 80: module 'strict' not found.
  364. Lua error in package.lua at line 80: module 'strict' not found.
  365. Lua error in package.lua at line 80: module 'strict' not found.
  366. Lua error in package.lua at line 80: module 'strict' not found.
  367. Lua error in package.lua at line 80: module 'strict' not found.
  368. Lua error in package.lua at line 80: module 'strict' not found.
  369. Lua error in package.lua at line 80: module 'strict' not found.
  370. Lua error in package.lua at line 80: module 'strict' not found.
  371. Lua error in package.lua at line 80: module 'strict' not found.
  372. Lua error in package.lua at line 80: module 'strict' not found.
  373. Lua error in package.lua at line 80: module 'strict' not found.
  374. Lua error in package.lua at line 80: module 'strict' not found.
  375. Lua error in package.lua at line 80: module 'strict' not found.
  376. Lua error in package.lua at line 80: module 'strict' not found.
  377. Lua error in package.lua at line 80: module 'strict' not found.
  378. Lua error in package.lua at line 80: module 'strict' not found.
  379. Lua error in package.lua at line 80: module 'strict' not found.
  380. Lua error in package.lua at line 80: module 'strict' not found.
  381. Lua error in package.lua at line 80: module 'strict' not found.
  382. Lua error in package.lua at line 80: module 'strict' not found.
  383. Lua error in package.lua at line 80: module 'strict' not found.
  384. Lua error in package.lua at line 80: module 'strict' not found.
  385. Lua error in package.lua at line 80: module 'strict' not found.
  386. Lua error in package.lua at line 80: module 'strict' not found.
  387. Lua error in package.lua at line 80: module 'strict' not found.
  388. Lua error in package.lua at line 80: module 'strict' not found.
  389. Lua error in package.lua at line 80: module 'strict' not found.
  390. Lua error in package.lua at line 80: module 'strict' not found.
  391. Lua error in package.lua at line 80: module 'strict' not found.
  392. Lua error in package.lua at line 80: module 'strict' not found.
  393. Lua error in package.lua at line 80: module 'strict' not found.
  394. Lua error in package.lua at line 80: module 'strict' not found.
  395. Lua error in package.lua at line 80: module 'strict' not found.
  396. Lua error in package.lua at line 80: module 'strict' not found.
  397. Lua error in package.lua at line 80: module 'strict' not found.
  398. Lua error in package.lua at line 80: module 'strict' not found.
  399. Lua error in package.lua at line 80: module 'strict' not found.
  400. Lua error in package.lua at line 80: module 'strict' not found.
  401. Lua error in package.lua at line 80: module 'strict' not found.
  402. 402.0 402.1 Lua error in package.lua at line 80: module 'strict' not found.
  403. Lua error in package.lua at line 80: module 'strict' not found.
  404. Lua error in package.lua at line 80: module 'strict' not found.
  405. Lua error in package.lua at line 80: module 'strict' not found.
  406. Lua error in package.lua at line 80: module 'strict' not found.

External links

  1. REDIRECT Template:Google LLC