Information and History
The Android Mascot
Android is a Linux-based open-source software stack (mainly an operating system) created for mobile phones and other devices. The Android Open Source Project (AOSP), led by Google and developed by the Open Handset Alliance (OHA); is tasked with the maintenance and further development of Android.
The primary purpose of this project is to build an excellent software platform for everyday users and to make sure that there is no central point of failure, where one industry player can restrict or control the innovations of any other. The chosen solution is an open and open-source platform.
Google purchased the initial developer of the software, Android Inc. (which was founded in 2003 in PA, California by Andy Rubin), in 2005. The unveiling of the Android distribution in 2007 was announced with the founding of the OHA, a consortium of 86 hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Google releases the Android code as open-source, under the Apache License.
“Why under the Apache License?” one might ask. For userspace software, ASL2.0 (and similar licenses like BSD, MIT, etc.) is preferred by Google over other licenses such as LGPL. The main reason behind this decision (as described in Android’s Source web site) is as follows:
Here are some of our specific concerns:
- LGPL (in simplified terms) requires either: shipping of source to the application; a written offer for source; or linking the LGPL-ed library dynamically and allowing users to manually upgrade or replace the library. Since Android software is typically shipped in the form of a static system image, complying with these requirements ends up restricting OEMs’ designs. (For instance, it’s difficult for a user to replace a library on read-only flash storage.)
- LGPL requires allowance of customer modification and reverse engineering for debugging those modifications. Most device makers do not want to have to be bound by these terms, so to minimize the burden on these companies we minimize usage of LGPL software in userspace.
- Historically, LGPL libraries have been the source of a large number of compliance problems for downstream device makers and application developers. Educating engineers on these issues is difficult and slow-going, unfortunately. It’s critical to Android’s success that it be as easy as possible for device makers to comply with the licenses. Given the difficulties with complying with LGPL in the past, it is most prudent to simply not use LGPL libraries if we can avoid it.
The issues discussed above are our reasons for preferring ASL2.0 for our own code. They aren’t criticisms of LGPL or other licenses. We do feel strongly on this topic, even to the point where we’ve gone out of our way to make sure as much code as possible is ASL2.0. However, we love all free and open source licenses, and respect others’ opinions and preferences. We’ve simply decided that ASL2.0 is the right license for our goals.
(More on Apache License will be explained on this blog later)
Android Logo Text
Android consists of a kernel based on the Linux kernel (and further architecture changes by Google outside the typical Linux kernel development cycle), with middleware, libraries and Application Programming Interfaces (API) written in C and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony (A free Java implementation project). Android uses the Dalvik Virtual Machine (the software which runs Android applications) with just-in-time compilation to run Dalvik dex-code (Dalvik Executable), which is usually translated from Java bytecode.
The Android 1.5 UI
The open and customizable nature of the Android operating system allows it to be used on most electronics, including but not limited to: smartphones, fixed phones, laptops, netbooks, smartbooks, tablet computers, e-book readers, TVs, wristwatches, headphones, car CD and DVD players, digital cameras, portable media players and other devices. For more information and comparison (which are hard to fit here) about devices benefiting from Android, click here. The operating system itself is installed on 130 million total devices.
The main hardware platform for Android is the ARM Architecture. There is support for x86 from the Android x86 project, and Google TV uses a special x86 version of Android.
The Main Application Elements
Android Market Logo
The Market and application security is the most emphasized components of Android for both its end-users and developers. Android Market’s gateway is an application program called “Market”, comes preinstalled on most Android devices, which allows users to browse and download mobile apps published by third-party developers. The Android Market application is not open source. Only Android devices that comply with Google’s compatibility requirements may install and access Google’s closed-source Android Market app, subject to entering into a free-of-charge licensing agreement with Google. Application developers receive 70% of the application price, with the remaining 30% distributed among carriers and payment processors. Google itself does not take a percentage.
As of January 2012 there were more than 400,000 apps available for Android, and the estimated number of applications downloaded from the Android Market as of December 2011 exceeded 10 billion. Android Market features 67% of free of charge apps, the highest percentage of any major app store, closely rivaled by Windows Phone Marketplace at 61%. By comparison, the Apple App Store offers only 37% of their apps free of charge. As of May 2011, users in 131 countries can purchase paid applications from Android Market. Some carriers offer direct carrier billing for Android Market app purchases. Purchases of unwanted applications can be refunded within 15 minutes of the time of download. There is no requirement that Android applications be acquired from Android Market. Users may download Android applications from a developer’s website or through a third party alternative to Android Market.
Android applications run in a sandbox (a security mechanism for separating running programs), unless access permissions are granted by the user when the application is installed. Before installing an application, Android Market displays all required permissions. A game may need to enable vibration, for example, but should not need to read messages or access the phonebook. After reviewing these permissions, the user can decide whether to install the application or not.
Some Android malware incidents have been reported involving rogue applications on Android Market. In August 2010, Kaspersky Lab reported detection of the first malicious program for Android, named Trojan-SMS. AndroidOS.FakePlayer.a, an SMS trojan which had already infected a number of devices. In some cases applications which contained Trojans were hidden in pirated versions of legitimate apps. Google has responded by removing malicious apps from the Android Market, and remotely disabling them on infected devices. Several security firms have released antivirus software for Android devices, in particular, AVG Technologies, Avast!, F-Secure, Kaspersky, McAfee and Symantec.
Apache Software Foundation Logo
The source code for Android is available under free and open source software (FOSS) licenses. Google published their Linux kernel changes under the GNU General Public License version 2, and the rest of the code (including network and telephony stacks) under the Apache License version 2.0. Google also keeps the reviewed issues list publicly open for anyone to see and comment.
The OHA develops the GPL-licensed part of Android, that is their changes to the Linux kernel, in public, with source code publicly available at all times. The rest of Android is developed in private, with source code released publicly when a major 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.
In early 2011, Google chose to temporarily withhold the Android source code to the tablet-only Honeycomb release, creating doubts over Google’s commitment to open source with Android. The reason, according to Andy Rubin in an official Android blog post, was because Honeycomb was rushed for production of the Motorola Xoom, 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. The source code was once again made available in November 2011 with the release of Android 4.0.