Wednesday, 2 January 2013

Android


 Android (operating system):

Android is a Linux-based operating system designed primarily for touchscreen mobile devices such as smartphones and tablet computers. Initially developed by Android, Inc., whom Google financially backed and later purchased in 2005,[9] 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.[10] The first Android-powered phone was sold in October 2008.[11]
Android is open source and Google releases the code under the Apache License.[12] This open source code and permissive licensing allows the software to be freely modified and distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally, Android has a large community of developers writing applications ("apps") that extend the functionality of devices, written primarily in a customized version of the Java programming language.[13] In October 2012, there were approximately 700,000 apps available for Android, and the estimated number of applications downloaded from Google Play, Android's primary app store, was 25 billion.[14][15]


Android
Android robot.svg
Android.svg
Android 4.2 on the Nexus 4.png
Android 4.2 "Jelly Bean" on the Nexus 4
Company / developer Google
Open Handset Alliance
Android Open Source Project
Programmed in C, C++, Java[1]
OS family Unix-like, Linux
Working state Current
Source model Open source[2]
Initial release September 23, 2008[3]
Latest stable release 4.2.1 Jelly Bean / November 27, 2012; 36 days ago[4][5]
Marketing target Smartphones
Tablet computers
Available language(s) Multi-lingual
Package manager Google Play, APK
Supported platforms ARM, MIPS,[6] x86[7]
Kernel type Monolithic (modified Linux kernel)
Default user interface Graphical (Multi-touch)
License Apache License 2.0
Linux kernel patches under GNU GPL v2[8]
Official website www.android.com


These factors have allowed Android to become the world's most widely used smartphone platform[16] and the software of choice for technology companies who require a low-cost, customizable, lightweight operating system for high tech devices without developing one from scratch.[17] As a result, despite being primarily designed for phones and tablets, it has seen additional applications on televisions, games consoles and other electronics. Android's open nature has further encouraged a large community of developers and enthusiasts to use the open source code as a foundation for community-driven projects, which add new features for advanced users[18] or bring Android to devices which were officially released running other operating systems.
Android had a worldwide smartphone market share of 75% during the third quarter of 2012,[19] with 500 million devices activated in total and 1.3 million activations per day.[20][21] The operating system's success has made it a target for patent litigation as part of the so-called "smartphone wars" between technology companies.


Applications

 


Play Store on the Galaxy Nexus.
Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application's APK file from a third-party site.[41] The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google's compatibility requirements.[42] The app filters the list of available applications to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons.[43] Purchases of unwanted applications can be refunded within 15 minutes of the time of download,[44] and 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.[45] As of September 2012, there were more than 675,000 apps available for Android, and the estimated number of applications downloaded from the Play Store was 25 billion.[46]

Applications are developed in the Java language using the Android software development kit (SDK). The SDK includes a comprehensive set of development tools,[47] including a debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin. Other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks.
In order to work around limitations on reaching Google services due to Internet censorship in the People's Republic of China, Android devices sold in the PRC are generally customized to use state approved services instead.[48]

Development

Android is developed in private by Google until the latest changes and updates are ready to be released, at which point the source code is made available publicly.[49] This source code will only run without modification on select devices, usually the Nexus series of devices.[50] With many devices, there are proprietary components which have to be provided by the manufacturer, in order for Android to work.[51]

Linux

 


Architecture diagram
Android consists of a kernel based on Linux kernel version 2.6 and, from Android 4.0 Ice Cream Sandwich onwards, version 3.x, with middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable), which is usually translated from Java bytecode.[52] The main hardware platform for Android is the ARM architecture. There is support for x86 from the Android x86 project,[7] and Google TV uses a special x86 version of Android.

Android's linux kernel has further architecture changes by Google outside the typical Linux kernel development cycle.[53] Android does not have a native X Window System by default nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing Linux applications or libraries to Android.[54] Support for simple C and SDL applications is possible by injection of a small Java shim and usage of the JNI[55] like, for example, in the Jagged Alliance 2 port for Android.[56]

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 kernel maintainers felt that Google did not show any intent to maintain their own code.[57][58][59] Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[60] 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.[58] 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.[61]

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".[62] In December 2011, Greg Kroah-Hartman announced the start of the Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3.[63] 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).[64]

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 app installations.[65] 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[66], but also by malicious parties to install viruses and malware.[67]

Memory management

 

Since Android devices are usually battery-powered, Android is designed to manage memory (RAM) to keep power consumption at a minimum, in contrast to desktop operating systems which generally assume they are connected to unlimited mains electricity. When an Android app is no longer in use, the system will automatically suspend it in memory - while the app is still technically "open," suspended apps consume no resources (e.g. battery power or processing power) and sit idly in the background until needed again. This has the dual benefit of increasing the general responsiveness of Android devices, since apps don't need to be closed and reopened from scratch each time, but also ensuring background apps don't waste power needlessly.[68]

Android manages the apps stored in memory automatically: when memory is low, the system will begin killing apps and processes that have been inactive for a while, in reverse order since they were last used (i.e. oldest first). This process is designed to be invisible to the user, such that users do not need to manage memory or the killing of apps themselves.[69] However, confusion over Android memory management has resulted in third-party task killers becoming popular on the Google Play store; these third-party task killers are generally regarded as doing more harm than good.[70]

Update schedule

 


Google provides major updates, incremental in nature, to Android every six to nine months, which most devices are capable of receiving over the air.[71] The latest major update is Android 4.2 Jelly Bean.[72]
Compared to its chief rival mobile operating system, namely iOS, Android updates are typically slow to reach actual devices. For devices not under the Nexus brand, updates often arrive months from the time the given version is officially released.[73] This is caused partly due to the extensive variation in hardware of Android devices, to which each update must be specifically tailored, as the official Google source code only runs on their flagship Nexus phone. Porting Android to specific hardware is a time- and resource-consuming process for device manufacturers, who prioritize their newest devices and often leave older ones behind.[73] Hence, older smartphones are frequently not updated if the manufacturer decides it is not worth their time, regardless of whether the phone is capable of running the update. This problem is compounded when manufacturers customize Android with their own interface and apps, which must be reapplied to each new release. Additional delays can be introduced by wireless carriers who, after receiving updates from manufacturers, further customize and brand Android to their needs and conduct extensive testing on their networks before sending the update out to users.[73]

The lack of after-sale support from manufacturers and carriers has been widely criticised by consumer groups and the technology media.[74][75] Some commentators have noted that the industry has a financial incentive not to update their devices, as the lack of updates for existing devices fuels the purchase of newer ones,[76] an attitude described as "insulting".[75] The Guardian has complained that the complicated method of distribution for updates is only complicated because manufacturers and carriers have designed it that way.[75] 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.[77] As of 2012, this alliance has never been mentioned since.[73]

Open source community

 

Android has an active community of developers and enthusiasts who use the Android source code to develop and distribute their own modified versions of the operating system.[78] These community-developed releases often bring new features and updates to devices faster than through the official manufacturer/carrier channels, albeit without as extensive testing or quality assurance;[18] 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 unsuitable for non-technical users, such as the ability to overclock or over/undervolt the device's processor.[79] CyanogenMod is the most widely used community firmware,[80] and acts as a foundation for numerous others.

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.[81] 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,[82] manufacturers and carriers have softened their position regarding third party development, with some, including HTC,[81] Motorola,[83] Samsung[84][85] and Sony Ericsson,[86] 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 the Nexus series of phones, although usually requiring that users waive their devices' warranties to do so.[81] However, despite manufacturer acceptance, some carriers in the US still require that phones are locked down.[87]

The unlocking and "hackability" of smartphones and tablets remains a source of tension between the community and industry, with the community arguing that unofficial development is increasingly important given the failure of industry to provide timely updates and/or continued support to their devices.[87]

Security and privacy

 


App permissions in the Play Store.
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. Before installing an application, the Play Store displays all required permissions: a game may need to enable vibration or save data to an SD card, for example, but should not need to read SMS messages or access the phonebook. After reviewing these permissions, the user can choose to accept or refuse them, installing the application only if they accept.[88]

The sandboxing and permissions system lessens the impact of vulnerabilities and bugs in applications, but developer confusion and limited documentation has resulted in applications routinely requesting unnecessary permissions, reducing its effectiveness.[89] Several security firms, such as Lookout Mobile Security,[90] AVG Technologies,[91] and McAfee,[92] have released antivirus software for Android devices. This software is ineffective as sandboxing also applies to such applications, limiting their ability to scan the deeper system for threats.[93]

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.[94] Other malware displays unwanted and intrusive adverts on the device, or sends personal information to unauthorised third parties.[94] 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,[95][96] and have accused the security industry of playing on fears to sell virus protection software to users.[95] Google maintains that dangerous malware is actually extremely rare.[96]

Google currently uses their Google Bouncer malware scanner to watch over and scan the Google Play store apps.[97] It is intended to flag up suspicious apps and warn users of any potential issues with an application before they download it.[98] Android version 4.2 Jelly Bean was released in 2012 with enhanced security features, including a malware scanner built into the system, which works in combination with Google Play but can scan apps installed from third party sources as well, and an alert system which notifies the user when an app tries to send a premium-rate text message, blocking the message unless the user explicitly authorises it.[99]

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.[100] Third party monitoring software such as TaintDroid,[101] an academic research-funded project, can, in some cases, detect when personal information is being sent from applications to remote servers.[102]

Licensing

 

The source code for Android is available under free and open source software licenses. Google publishes most of the code (including network and telephony stacks)[103] under the Apache License version 2.0,[104][105] and the rest, Linux kernel changes, under the GNU General Public License version 2. The Open Handset Alliance develops the changes to the Linux kernel, in public, with source code publicly available at all times. The rest of Android is developed in private by Google, with source code released publicly when a new version is released. Typically Google collaborates with a hardware manufacturer to produce a 'flagship' device (part of the Google Nexus series) featuring the new version of Android, then makes the source code available after that device has been released.[106]

In early 2011, Google chose to temporarily withhold the Android source code to 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,[107] 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.[108] The source code was once again made available in November 2011 with the release of Android 4.0.[109]

Even though the software is open-source, device manufacturers cannot use Google's Android trademark unless Google certifies that the device complies with their Compatibility Definition Document (CDD). Devices must also meet this definition to be eligible to license Google's closed-source applications, including Google Play.[110] As Android is not completely released under a GPL compatible license, e.g. Google's code is under the Apache license,[8] and also because Google Play allows proprietary software, Richard Stallman and the Free Software Foundation have been critical of Android and have recommended the usage of alternatives such as Replicant.

Reception

 

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.[113] The idea of an open source, Linux-based development platform sparked interest,[114] 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.[115] These established players were skeptical: Nokia was quoted as saying "we don't see this as a threat,"[116] and a member of Microsoft's Windows Mobile team stated "I don't understand the impact that they are going to have."


Since then Android has grown to become the most widely used smartphone operating system[17] and "one of the fastest mobile experiences available."[117] Reviewers have highlighted the open source nature of the operating system as one of its defining strengths, allowing companies such as Amazon, Barnes & Noble, 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.[17] 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.

Despite its success on smartphones, Android tablet adoption has been slow.[119] This is primarily blamed on a chicken or the egg situation where consumers are hesitant to buy an Android tablet due to a lack of high quality tablet apps, but developers are hesitant to spend time and resources developing tablet apps until there's a significant market for them.[120][121] Other factors included high prices[122] and the dominance of Apple's iPad.[121] This began to change in 2012 with the release of the successful Nexus 7 and a push by Google for developers to write better tablet apps.[123] Android tablets are expected to overtake the iPad within a few years.

Market share and rate of adoption

 

Research company Canalys estimated in the second quarter of 2009 that Android had a 2.8% share of worldwide smartphone shipments. By the fourth quarter of 2010 this had grown to 33% of the market, becoming the top-selling smartphone platform. By the third quarter of 2011 Gartner estimated that more than half (52.5%) of the smartphone market belongs to Android.By the third quarter of 2012 Android had a 75% share of the global smartphone market according to the research firm IDC.
In July 2011, Google said that 550,000 new Android devices were being activated every day, up from 400,000 per day in May, and more than 100 million devices had been activated with 4.4% growth per week. In September 2012, 500 million devices had been activated with 1.3 million activations per day.

Android market share varies by location. In July 2012, Android's market share in the United States was 52%, but this rises to 90% in China.






























































1 comment: