Introducing the Android Computing Platform
Computing continues to become more “personal,” increasingly accessible anytime, anywhere. At the forefront of this development are handheld devices that are transforming into computing platforms. Mobile phones are no longer just for talking— they have been capable of carrying data and video for some time. Significantly, the mobile device is becoming so capable of general-purpose computing that it’s destined to become the next PC (Personal Computer). It is also anticipated that even a number of traditional PC manufacturers such as ASUS, HP, and Dell will be producing devices of various form factors based on the Android OS. The battle lines between operating systems, computing platforms, programming languages, and development frameworks are being shifted and reapplied to mobile devices.
We are also expecting a surge in mobile programming in the IT industry as more and more IT applications start to offer mobile counterparts. To help you profit from this trend, we’ll show you how to use Java to write programs for devices that run on Google’s Android Platform (http://developer.android.com/index.html), an open source platform for mobile development. We are excited about Android because it is an advanced platform that introduces a number of new paradigms in framework design (even with the limitations of a mobile platform).
In this Article, we’ll provide an overview of Android and its SDK, give a brief overview of key packages, introduce what we are going to cover in each chapter briefly, show you how to take advantage of Android source code, and highlight the benefits of programming for the Android Platform.
A New Platform for a New Personal Computer
general-purpose computing languages, which increases the range and market share for mobile applications.
Figure 1–1. Handheld is the new PC.
The Android Platform embraces the idea of general-purpose computing for handheld devices. It is a comprehensive platform that features a Linux-based operating system stack for managing devices, memory, and processes. Android’s libraries cover telephony, video, graphics, UI programming, and a number of other aspects of the device.
NOTE: Although built for mobile devices, the Android platform exhibits the characteristics of a full-featured desktop framework. Google makes this framework available to Java programmers through a Software Development Kit (SDK) called the Android SDK. When you are working with the Android SDK, you rarely feel that you are writing to a mobile device because you have access to most of the class libraries that you use on a desktop or a server—including a relational database.
The Android SDK supports most of the Java Platform, Standard Edition (Java SE) except for the Abstract Window Toolkit (AWT) and Swing. In place of AWT and Swing, Android SDK has its own extensive modern UI framework. Because you’re programming your applications in Java, you could expect that you need a Java Virtual Machine (JVM) that is responsible for interpreting the runtime Java byte code. A JVM typically provides the necessary optimization to help Java reach performance levels comparable to compiled languages such as C and C++. Android offers its own optimized JVM to run the compiled Java class files in order to counter the handheld device limitations such as memory, processor speed, and power. This virtual machine is called the Dalvik VM, which we’ll explore in a later section “Delving into the Dalvik VM.”
Figure 1–2 provides an overview of the Android software stack. (We’ll provide further details in the section “Understanding the Android Software Stack.”)
The familiarity and simplicity of the Java programming language coupled with Android’s extensive class library make Android a compelling platform to write programs for.
In the Next Article, We will See the history of Android.