Android is the first complete, open, and free mobile platform. Developers enjoy a comprehensive Software Development Kit (SDK), with ample tools for developing powerful, feature-rich applications. The platform is open source, relying on tried-and-true open standards with which developers will be familiar. Best of all, there are no costly barriers to entry for developers: no required fees. (A modest fee is required to publish on third-party distribution mechanisms, such as the Android Market.) Android developers have numerous options for distributing and commercializing their applications.
To understand where Android fits in with other mobile technologies, let’s first talk about how and why this platform came about.
Google and the Open Handset Alliance
In 2007, a group of handset manufacturers, wireless carriers, and software developers (notably, Google) formed the Open Handset Alliance, with the goal of developing the next generation of wireless platform. Unlike existing platforms, this new platform would be nonproprietary and based on open standards, which would lead to lower development costs and increased profits. Mobile software developers would also have unprecedented access to the handset features, allowing for greater innovation.
As proprietary platforms, such as RIM BlackBerry and Apple iPhone, gained traction, the mobile-development community eagerly listened for news of this potential game-changing platform.
Android Makes Its Entrance
In 2007, the Open Handset Alliance announced the Android platform and launched a beta program for developers. Android went through the typical revisions of a new platform. Several prerelease revisions of the Android Software Development Kit (SDK) were released. The first Android handset (T-Mobile G1) began shipping in late 2008. Throughout 2009 and 2010, new and exciting Android smartphones reached markets throughout the world, and the platform proved itself to industry and consumers alike. Over the last three years, numerous revisions to the Android platform have been rolled out, each providing compelling features for developers to leverage and users to enjoy. Recently, mobile platforms have begun to consider devices above and beyond the traditional smartphone paradigm, to other devices, like tablets, e-book readers, and set-top boxes (like Google TV).
As of this writing, hundreds of Android devices are available to consumers around the world—from high-end smartphones to low-end “free with contract” handsets and everything in between. This figure does not include the numerous Android tablet and e-book readers also available, nor the dozens of upcoming devices already announced, nor the consumer electronics running Android. (For a nice list of Android devices, check out this Wikipedia link: http://goo.gl/fU2X5.) There are more than 200,000 applications currently published on the Android Market. In the United States, all major carriers now prominently carry Android phones in their product lines, as do many in Asia, Europe, Central/South America, and beyond. The rate of new Android devices reaching the world markets has continued to increase.
Google has been a contributing member of the Open Handset Alliance from the beginning. The company hosts the Android open source project and the developer website at http://developer.android.com. This website is your go-to site for downloading the Android SDK, getting the latest platform documentation, and browsing the Android developer forums. Google also runs the most popular service for selling Android applications to end users: the Android Market. The Android mascot is the little green robot shown in Figure 1.1.
Figure 1.1. The Android Mascot (Bugdroid)
Cheap and Easy Development
If there’s one time when “cheap and easy” is a benefit, it’s with mobile development. Wireless application development, with its ridiculously expensive compilers and preferential developer programs, has been notoriously expensive to break into compared to desktop development. Here, Android breaks the proprietary mold. Unlike with other mobile platforms, there are virtually no costs to developing Android applications.
The Android SDK and tools are freely available on the Android developer website (http://developer.android.com ([http://goo.gl/K8GgD]). The freely available Eclipse program has become the most popular integrated development environment (IDE) for Android application development; there is a powerful plug-in available on the Android developer site for facilitating Android development with Eclipse.
So, we’ve covered cheap; now let’s talk about why Android development is easy. Android applications are written in Java, which is one of the most popular development languages around. Java developers will be familiar with many of the packages provided as part of the Android SDK, such as java.net. Experienced Java developers will be pleased to find that the learning curve for Android is reasonable.
This book focuses on the most common, popular, and simple setup for developing Android applications:
- We use the most common and supported development language: Java. Although we do not teach Java, we try our best to keep the Java code simple and straightforward, so that even beginners won’t be wrestling with syntax. Even so, if you are new to Java, we recommend reading Sams Teach Yourself Java in 24 Hours by Rogers Cadenhead and Thinking in Java, Fourth Edition in Print, by Bruce Eckel. (The third edition is free at http://goo.gl/mtjoz, provided in a zip file from Bruce Eckel’s website at http://www.mindviewinc.com/Books/.)
- We use the most popular development environment: Eclipse. It’s free, it’s well supported by the Android team, and it’s the only supported IDE compatible with the Android Development Tools plug-in. Did we mention it’s free?
- We write instructions for the most common operating system used by developers: Windows. Users of Linux or Mac may need to translate some keyboard commands, paths, and installation procedures.
- We focus on the Android platform version available on the Amazon Kindle Fire: Android 2.3.4, API Level 10.
If you haven’t installed the development tools needed to develop Android applications or the Android SDK and tools yet, do so at this time.
Let’s get started!