Datasheet

2
CHAPTER 1 HELLO, ANDROID
In Android, native and third-party applications are written with the same APIs and executed on the
same run time. These APIs feature hardware sensor access, video recording, location-based services,
support for background services, map-based activities, relational databases, inter-application commu-
nication, and 2D and 3D graphics.
Using this book, you will learn how to use these APIs to create your own Android applications. In this
chapter you’ll learn some mobile development guidelines and be introduced to the features available
from the Android development platform.
Android has powerful APIs, excellent documentation, a thriving developer community, and no devel-
opment or distribution costs. As mobile devices continue to increase in popularity, this is an exciting
opportunity to create innovative mobile phone applications no matter what your development
experience.
A LITTLE BACKGROUND
In the days before Twitter and Facebook, when Google was still a twinkle in its founders’ eyes and
dinosaurs roamed the earth, mobile phones were just that — portable phones small enough to fit inside
a briefcase, featuring batteries that could last up to several hours. They did however offer the freedom
to make calls without being physically connected to a landline.
Increasingly small, stylish, and powerful mobile phones are now as ubiquitous as they are indispensable.
Hardware advancements have made mobiles smaller and more efficient while including an increasing
number of peripherals.
After first getting cameras and media players, mobiles now include GPS systems, accelerometers, and
touch screens. While these hardware innovations should prove fertile ground for software development,
the applications available for mobile phones have generally lagged behind the hardware.
The Not-So-Distant Past
Historically, developers, generally coding in low-level C or C++, have needed to understand the specific
hardware they were coding for, generally a single device or possibly a range of devices from a single
manufacturer. As hardware technology and mobile Internet access has advanced, this closed approach
has become outmoded.
More recently, platforms like Symbian have been created to provide developers with a wider target
audience. These systems have proven more successful in encouraging mobile developers to provide rich
applications that better leverage the hardware available.
These platforms offer some access to the device hardware, but require the developer to write complex
C/C++ code and make heavy use of proprietary APIs that are notoriously difficult to work with. This
difficulty is amplified for applications that must work on different hardware implementations and those
that make use of a particular hardware feature, like GPS.
In more recent years, the biggest advance in mobile phone development was the introduction of Java-
hosted MIDlets. MIDlets are executed on a Java virtual machine, a process that abstracts the underlying
hardware and lets developers create applications that run on the wide variety of devices that supports
the Java run time. Unfortunately, this convenience comes at the price of restricted access to the device
hardware.