Chapter 1. Android Overview

In this chapter, you will learn how Android came about. We’ll take a look at its history to help us understand its future. As this mobile environment enters a make-or-break year, we look at the key players in this ecosystem, what motivates them, and what strengths and weaknesses they bring to the table.

By the end of this chapter, you will better understand the ecosystem from a business point of view, which should help clarify the technology choices and how they relate to long-term advantages for various platforms.

Android Overview

Android is a comprehensive open source platform designed for mobile devices. It is championed by Google and owned by Open Handset Alliance. The goal of the alliance is to “accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience.” Android is the vehicle to do so.

As such, Android is revolutionizing the mobile space. For the first time, it is a truly open platform that separates the hardware from the software that runs on it. This allows for a much larger number of devices to run the same applications and creates a much richer ecosystem for developers and consumers.

Let’s break down some of these buzzwords and see what’s behind them.

Comprehensive

Android is a comprehensive platform, which means it is a complete software stack for a mobile device.

For developers, Android provides all the tools and frameworks for developing mobile apps quickly and easily. The Android SDK is all you need to start developing for Android; you don’t even need a physical device. Yet, there are numerous tools, such as Eclipse, for example, that help make the development life cycle more enjoyable.

For users, Android just works right out of the box. Additionally, users can customize their phone experience substantially. It is, according to some studies, the most desirable mobile operating system in the United States at the moment.

For manufacturers, it is the complete solution for running their devices. Other than some hardware-specific drivers, Android provides everything else to make their devices work. That means that manufacturers can innovate at the highest level and bring up their game a notch.

Open Source Platform

Android is an open source platform. Most of the stack, from low-level native, Dalvik virtual machine, application framework, and standard apps, is totally open.

Aside from the Linux kernel itself, Android is licensed under business-friendly licenses (Apache/MIT/BSD) so that others can freely extend it and use it for variety of purposes. Even some third-party open source libraries that were brought into the Android stack were rewritten under new license terms.

So, as a developer, you have access to the entire platform source code. This allows you to see how the guts of the Android operating system work. As a manufacturer, you can easily port Android OS to your specific hardware. You can also add your own proprietary secret sauce, and you do not have to push it back to the development community if you don’t want to.

There’s no need to license Android. You can start using it and modifying it today, and there are no strings attached. In addition, Android has many hooks at various levels of the platform, allowing anyone to extend it in unforeseen ways.

Note

There are couple of minor low-level pieces of code that are proprietary to each vendor, such as the software stack for the cellular, WiFi, and Bluetooth radios. Android tries hard to abstract those components with interfaces so that vendor-specific code can be managed easily.

Designed for Mobile Devices

Android is a purpose-built platform for mobile devices. When designing Android, the team looked at which mobile device constraints likely were not going to change for the foreseeable future. For one, mobile devices are battery powered, and battery performance likely is not going to get much better anytime soon. Second, the small size of mobile devices means that they will always be limited in terms of memory and speed.

These constraints were taken into consideration from the get-go and were addressed throughout the platform. The result is an overall better user experience.

Android was designed to run on all sorts of physical devices. Android doesn’t make any assumptions about a device’s screen size, resolution, chipset, and so on. Its core is designed to be portable.

History

The history of Android is interesting and offers some perspective on what the future might hold.

These are the key events of the past few years:

  • In 2005, Google buys Android, Inc. The world thinks a “gPhone” is about to come out.
  • Everything goes quiet for a while.
  • In 2007, the Open Handset Alliance is announced. Android is officially open sourced.
  • In 2008, the Android SDK 1.0 is released. The G1 phone, manufactured by HTC and sold by the wireless carrier T-Mobile USA, follows shortly afterward.
  • 2009 sees a proliferation of Android-based devices. New versions of the operating system are released: Cupcake (1.5), Donut (1.6), and Eclair (2.0 and 2.1). More than 20 devices run Android.
  • In 2010, Android is second only to BlackBerry as the best-selling smart phone platform. Froyo (Android 2.2) is released and so are more than 60 devices that run it.
  • In 2011, Android is the #1 mobile platform by number of new activations and number of devices sold. The battle for dominating the tablet market is on.
  • In 2012, GoogleTV, powered by Android and running on Intel x86 chips, is released. Android is now running on everything from the smallest of screens to the largest of TVs.
  • In 2013, Google Glass, a wearable computing platform with an optical head-mounted display powered by Android is released to a select few.
  • Beyond phones, tablets, and TVs, Android continues to be the big challenger to Embedded Linux as the platform for developing a number of specialized devices, such as home automation systems, car dashboards and navigation systems, as well as NASA satellites.

In 2005, when Google purchased Android, Inc., the world thought Google was about to enter the smartphone market, and there were widespread speculations about a device called the gPhone.

Google’s CEO, Eric Schmidt, made it clear right away that Android’s ambitions were much larger than a single phone. Instead, Android engineers envisioned a platform that would enable many phones and other devices.

Google’s Motivation

Google’s motivation for supporting the Android project seems to be having Android everywhere and by doing that, creating a level playing field for mobile devices. Ultimately, Google is a media company, and its business model is based on selling advertising. If everyone is using Android, then Google can provide additional services on top of it and compete fairly. This is unlike the business models of other software vendors who depend on licensing fees.

Although Google does license some proprietary apps, such as Gmail and Google Maps, and continues to make money off its Google Play service, its primary motivation is still the advertising revenue that those apps bring in.

As Android growth and stiff competition continue to take even Google by surprise, it is going to be essential to keep Android open for others to “remix” it in whatever way they see fit.

Android Compatibility

From the get-go, Google created Compatibility Test Suite (CTS), defining what it means to be an Android-compatible device. CTS is a combination of automated tests as well as a document that specifies what an Android device must have, should have, or what features are simply optional.

The goal of CTS is to ensure that, for a regular consumer, an average app from the market will run on an average Android device if that device claims to be supporting a certain version of Android. It is designed to prevent so-called fragmentation of the Android operating system, such as the one that happened in the world of Linux desktops, for example.

The issue with CTS is that it is up to the creator of a custom Android version to self-test its compatibility. It appears that the only major “teeth” in enforcing CTS on the part of manufacturers is Google itself, by simply not wanting to license its proprietary Android code to noncompatible devices. That proprietary code includes Google Play, Gmail, Google Maps, and much more.

CTS helps to shield the average Joe from being disappointed by an app not running as advertised due to lack of features on his device. However, CTS is by no means a must. For example, Amazon has released Kindle Fire, a device built on top of the Android OS. Kindle Fire was never designed with CTS in mind—Amazon simply wanted a great ebook reader and saw in Android an open platform that would get it there faster.

This is a good thing, and hopefully the future of Android will stay compatible for an average Android-branded device, yet open for custom purpose-built gadgets that want to leverage its powerful software stack.

Note that manufacturers by no means have to adhere to CTS. Anyone is welcome to download and “remix” Android in any way they see fit. And people do: Android has been purpose-customized for everything from cars to satellites, and from photocopiers to washing machines. The major reason manufacturers would want to ensure Android compatibility is access to Google Play, and its rich set of apps.

Open Handset Alliance

For this to be bigger than just Google, Android is owned by the Open Handset Alliance, a nonprofit group formed by key mobile operators, manufacturers, software companies, and others. The alliance is committed to openness and innovation for the mobile user experience.

In practice, the alliance is still very young and many members are still learning to work with one another. Google happens to be putting the most muscle behind the Android project at the moment.

Android Versions

Like any software, Android is improved over time, which is reflected in its version numbers. However, the relationship between different version numbers can be confusing. Table 1-1 helps explain that.

Table 1-1. Android OS platform versions
Android versionAPI levelCodename

Android 1.0

1

Android 1.1

2

Android 1.5

3

Cupcake

Android 1.6

4

Donut

Android 2.0

5

Eclair

Android 2.01

6

Eclair

Android 2.1

7

Eclair

Android 2.2

8

Froyo (frozen yogurt)

Android 2.3

9

Gingerbread

Android 2.3.3

10

Gingerbread

Android 3.0

11

Honeycomb

Android 3.1

12

Honeycomb

Android 3.2

13

Honeycomb

Android 4.0

14

Ice Cream Sandwich

Android 4.0.3

15

Ice Cream Sandwich

Android 4.1

16

Jelly Bean

Android 4.2

17

Jelly Bean

Android 4.3

18

Jelly Bean

Android 4.4

19

KitKat

The Android version number itself partly tells the story of the software platform’s major and minor releases. What is most important is the API level. Version numbers change all the time, sometimes because the APIs have changed, and other times because of minor bug fixes or performance improvements.

As an application developer, you will want to make sure you know which API level your application is targeting in order to run. That API level will determine which devices can and cannot run your application.

Typically, your objective is to have your application run on as many devices as possible. So, with that in mind, try to shoot for the lowest API level possible. Keep in mind the distribution of Android versions on real devices out there. Figure 1-1 shows a snapshot of the Android Device Dashboard from mid-2013.

Historical Android version distribution through August 2013
Figure 1-1. Historical Android version distribution through August 2013

You may notice that there are a lot of users of Android 2.3.3+ and 4.1.x. This places the latest and greatest (4.1.x) version as the second largest version currently in the wild. This hasn’t always been the case because OEMs tended to be very slow in upgrading their OS versions. However, this has changed with Google’s strong push to get everyone onto the latest and greatest. Unfortunately, there are still a lot of people who have the 2.3.3 version because they have yet to upgrade their phones to a phone with the hardware capable of handling the newer version. This is changing now because people can upgrade their phones automatically when they renew their plans.

With that in mind, you will probably choose 2.3.3 as your minimum development target, unless you truly need the features of the latest version.

Android Flavors

Android is open, and as such, many parties download it, modify it, and release their own flavors of it. Let’s take a look at the options in this space.

Android Open Source Project

The official version of Android, the one that comes from Google, is technically referred to as Android Open Source Project, or AOSP for short. Think of AOSP as a reference version of Android, a vanilla flavor. You may rarely find AOSP version on a consumer device. It is often spiced up, or mixed in with some other flavors to create a better overall experience.

Manufacturer Add-Ons

Before Android, many original equipment manufacturers (OEMs) used to have teams of engineers working on low-level components of the OS that they now get for free with Android. So they started differentiating their devices by moving the innovation from reinventing the wheel to much higher-level components that their users desire. This has opened up a revolution of innovation in the mobile space.

Companies such as HTC, Motorola, and Samsung often add many useful features to vanilla Android. These additional features are sometimes referred to as overlays, skins, or mods, and are officially known as add-ons.

Some add-ons may be simple changes in the set of applications shipped with that version of Android. Others may be much more profound overhauls of the entire Android stack, such as in HTC Sense.

Often, these modification still adhere to Android Compatibility Test Suite, and make for a better user experience. Overall, the add-ons showcase the power of an open operating system and, as such, are very welcome in pushing mobile computing to the next level.

Summary

The Android operating system was designed from the ground up to be a comprehensive open source platform for mobile devices. It is a game changer in the industry and has enjoyed great success.

In Chapter 3, we’ll take a look at the entire Android operating system at a high level to gain a technical understanding of how all the pieces fit together.

Get Learning Android, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.