O'Reilly logo

Learning Android by Marko Gargenta

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 buzz words 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 phone.

For users, Android just works right out of the box. Additionally, users can customize their phone experience substantially.

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.

Open Source Platform

Android is an open source platform. The entire stack, from low-level Linux modules all the way to native libraries, and from the application framework to complete applications, is totally open.

More so, Android is licensed under business-friendly licenses (Apache/MIT) 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 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. More so, 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 any time 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 2005, when Google purchased Android, Inc., the world thought Google was about to enter the smart phone 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, they 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 Maps, and makes some money off the Android market, its primary motivation is still the advertising revenue that those apps bring in.

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, carriers, 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 each other. Google happens to be putting the most muscle behind the Android project at the moment.

Note

The first version of the Android SDK was released without an actual phone on the market. The point of this is that you don’t really need a phone for Android development. There are some exceptions (hardware sensors, telephony, etc.), but for the most part the Android SDK contains everything you’ll need for developing on this platform.

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 versions through Android 2.3
Android versionAPI levelNickname

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

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 application developers, 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 an API level that is as low as 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-2010.

Historical Android version distribution through January 2011
Figure 1-1. Historical Android version distribution through January 2011

You may notice that there are a lot of users of Android 1.5 and 1.6. You may also notice that not a lot of users have the latest and greatest Android 2.3, but the number of 2.x users is growing. This is because everyone with 1.0 and 1.1 got upgraded over the air (OTA) automatically to 1.5. On the other hand, users who still have devices with Android 1.5 and 1.6 likely will never be able to upgrade to 2.x versions. Their older devices do not have the relevant firmware, and most manufacturers are not planning on releasing firmware upgrades as they are busy working on new models.

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

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 the next chapter, 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.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required