9781449390501
Android_Overview.html

Chapter 1. Android Overview

If you're new to the Android mobile operating system, Learning Android is the perfect way to master the fundamentals. This gentle introduction shows you how to use Android's basic building blocks to develop user interfaces, store data, and more. Buy the print book or ebook.

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 mobile environment is entering a make-or-break year(s), we look at the key players in this ecosystem, what motivates and what strengths and weaknesses they bring to the table.

By the end of this chapter, you will have a better perception of the ecosystem from business point of view, which should help you understand 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 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 is separating hardware from software that runs on it. This allows for a much larger number of devices to run same applications and creates a much richer ecosystem for developers and consumers to enjoy.

Let’s break down some of these buzz words and see what’s behind them:

Comprehensive

Android is a comprehensive platform. It is a complete software stack for a mobile device.

For developers, Android provides all the tools and frameworks to allow easy and quick development of mobile apps. 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 substantially customize their phone experience.

For manufacturers, it is the complete solution that can run 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 application framework, to complete applications, Android 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 3rd party open source libraries that were brought into Android stack were re-written to be licensed under new license terms.

So, as a developer, you have access to entire platform source code. This allows you to see how the guts of 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’re no strings attached. More so, Android has many hooks at all various levels of the platform to allow 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, Wi-Fi, and Bluetooth radios. Android tries hard to abstract those components with interfaces so that vendor-specific code can be easily managed.

Designed for Mobile Devices

Android is a purpose-built platform for mobile devices. When designing Android, the team looked at what constraints are likely not going to change for a foreseeable future when it comes to mobile devices. For one, mobile devices are battery powered and battery performance is likely not going to get much better any time soon. Secondly, 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 in order to gain the perspective on what the future might hold.

These are the key events of the past few years:

  • 2005 Google buys Android, Inc. The world thinks a "gPhone" is about to come out…
  • Everything goes quiet for a while.
  • 2007 Open Handset Alliance is announced. Android is officially open-sourced.
  • 2008 Android SDK 1.0 is released. The G1 phone, manufactured by HTC, and sold by the wireless carrier T-Mobile USA, follows shortly afterwards.
  • 2009 sees a proliferation of Android-based devices. New versions of the operating system: Cupcake (1.5), Donut (1.6), and Eclair (2.0 and 2.1) are released. 20+ devices run Android.
  • 2010 Android is 2nd only to RIM as best-selling smart phone platform. Froyo (Android 2.2) is released and so are 60+ devices that run it.

In 2005, when Google purchased Android, Inc., the world thought Google is about to enter the smart phone market. There were widespread speculations about device called gPhone.

Google CEO, Eric Schmidt, made it clear right away that Android’s ambitions are much larger than a single phone. They saw it as a platform that will enable many phones and other devices out there.

Google’s Motivation

Google’s motivation in supporting the Android project seems to be to have Android everywhere and by doing that, to create a level playing field for the mobile. 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 business models of other software vendors who depend on the licensing fees.

While Google does license some proprietary apps, such as Gmail and Maps, and make 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 Open Handset Alliance, a non-profit group formed by key mobile operators, manufacturers, carriers, and others. The alliance is committed to openness and innovation for 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 Android SDK was released without an actual phone being on the market. The point of this is that you don’t really need a phone to do Android development. There are some exceptions to this (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 gets improved over time and that is reflected in its version numbers. But what is confusing is the relationship between different version numbers. Table 1.1, “Android versions through Android 2.3” is meant to help explain that.

Table 1.1. Android versions through Android 2.3

Android Version API Level Nickname

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 X.X

10

Honeycomb

Android X.X

11

Ice Cream Sandwich


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

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

Your objective is typically 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 this distribution of Android versions on real devices out there. Figure 1.1, “Historical Android version distribution through January 2011” shows a snapshot of the Android Device Dashboard from mid-2010.

Figure 1.1. Historical Android version distribution through January 2011

Historical Android version distribution through January 2011

You may notice that there are not a lot of users of Android 1.5 and 1.6. You may also notice that there are not a lot of users of latest and greatest Android 2.3, but the number of 2.x users is growing. This is because everyone on 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 will likely never be able to upgrade to 2.x versions because their older devices do not have 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 really truly need features of the latest version.

Summary

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

In the next chapter, we’ll take a look at the entire Android operating system at a high level to understand how technically all the pieces fit together.

Site last updated on: April 8, 2011 at 12:51:47 PM PDT
Cover for Learning Android

View 2 comments

  1. Clemens Hladek – Posted Jan. 30, 2011

    "what motivates and what strengths" - shouldn't either be "motivates them" or "motivations" ?

  2. David Fuller – Posted April 3, 2011

    I believe it should say something like "as the mobile environment" or "as mobile environments".

Add a comment

View 1 comment

  1. wilsonmar Mar – Posted Sept. 10, 2011

    grammer: from a business point of view.

Add a comment

View 1 comment

  1. JPFitz – Posted Feb. 16, 2012

    typo: " devices to run same applications " should read " devices to run the same applications "

Add a comment

View 1 comment

  1. Marilyn Escue – Posted Nov. 25, 2010

    In the 2nd sentence, it's likely you really mean "foreseeable".

Add a comment

View 1 comment

  1. Clemens Hladek – Posted Jan. 30, 2011

    what motivates - should either be: ...motivates THEM or: motivatIONS

Add a comment

View 2 comments

  1. Marilyn Escue – Posted Nov. 25, 2010

    I've heard conflicting info about the next release... either it's 2.3 or 3.0. Once it's determined, then either the name of the table or the last table entry needs to be updated in order to be consistent.

  2. Bill Schrickel – Posted Jan. 16, 2011

    Honeycomb has been announced (but is this for tablets only?) And just this past week Ice Cream Sandwich was announced (2.4?).

Add a comment

View 1 comment

  1. Rami A – Posted Dec. 22, 2010

    There two issues with this chart: 1) It's already obsolete as Google already updated the chart with a newer data. 2) The data is only for 2 weeks worth of data, which may or may not represent actual install base.

    Looking at the newer chart, the conclusion to develop for the 1.6 target is invalid. It's probably better to develop for 2.1+ now.

    A better chart might be the one located at the bottom of the Android Device dashboard page, which shows historical dataset.

Add a comment

View 2 comments

  1. Marilyn Escue – Posted Nov. 26, 2010

    Not sure what is intended in the sentence beginning with "However,..."

  2. jcrawford – Posted April 5, 2011

    Did you mean 2.2? I do not see 2.3 in the graph.

    Context: You may also notice that there are not a lot of users of latest and greatest Android 2.3, but the number of 2.x users is growing.

Add a comment

View 5 comments

  1. Eric Rudkin – Posted May 12, 2011

    Honeycomb is Android 3.0, I believe

  2. wilsonmar Mar – Posted Sept. 10, 2011

    Honeycomb is 3.x 3.2 is API 13 3.1.x is API 12 3.0 is API

  3. wilsonmar Mar – Posted Sept. 10, 2011

    Features of each version is at http://en.wikipedia.org/wiki/Android_version_history

  4. Paul Steiner – Posted Sept. 13, 2011

    Android x.x = Jelly Bean (after Ice Cream Sandwich)

    Also, it might be worth noting at the moment android is fragmented in that Honeycomb is for tablets only.

    Ice Cream Sandwich forward is supposed to be universal for both phones and tablets

  5. Yuchen Wei – Posted Oct. 11, 2011

    Ice Cream Sandwich is Android 4.0, use the kernel of linux 3.0

Add a comment