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 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.
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.
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.
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.
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 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.
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.
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.
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.
|Android version||API level||Codename|
Froyo (frozen yogurt)
Ice Cream Sandwich
Ice Cream Sandwich
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.
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.
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.
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.
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.
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.