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







View 2 comments




"what motivates and what strengths" - shouldn't either be "motivates them" or "motivations" ?
I believe it should say something like "as the mobile environment" or "as mobile environments".
Add a comment