Android applications, like most mobile phone applications, are
developed in a host-target development environment. In other words, you
develop your application on a host computer (where resources are
abundant), and download it to a target mobile phone for testing and
ultimate use. At the time this book is being written, there are no
Android phones available, so we will be running, debugging, and testing
using the Android emulator that comes with the Android tool set.
To write your own Android mobile phone applications, you'll first
need to collect the required tools and set up an appropriate development
environment on your PC or Mac. In this chapter we'll collect the tools
you need, download them and install them on your computer, and write a
sample application that will let you get the feel of writing and running
Android applications on an emulator. Linux, Windows, and Macintosh are
all supported development environments, and we'll show you how to
install the latest set of tools on each. Then we'll show you any
configuration you need to do after the tools are installed (setting PATH
environment variables and the like), again for each of the three
operating systems. And finally we'll write a short little "Hello,
Android" application that demonstrates what needs to be done to get a
generic application running.
The Android SDK supports several different development environments.
For this book we will focus on using Eclipse, because it is the best
integrated with the SDK, and, hey, it's free. No matter which operating
system you are using, you will need essentially the same set of tools:
- The Eclipse Integrated Development Environment
- Sun's Java Development Kit (JDK)
- The Android Software Developer's Kit (SDK)
- A special Eclipse plug in: the Android Developer Tool (ADT)
Since you're probably going to develop on only one of these operating
systems, skip to the appropriate section that pertains to your selected
operating system.
Creating an Android Development Environment
The Android Software Development Kit supports Windows (XP and Vista),
Linux (Ubuntu Dapper Drake), and Mac OS X (10.4.8 or later) as host
development environments. Installation of the SDK is substantially the
same for any of the operating systems, and most of this description
applies equally to all of them. Where the procedure differs, we will
clearly tell you what to do for each environment.
1. Install Eclipse: The Android SDK requires Eclipse
version 3.2 or 3.3 (also known as Europa) or later. If you do not have
that version of Eclipse installed yet, you will need to go to
http://www.eclipse.org/downloads to get it, and you might as well get
version 3.3 since that package includes the required plugins mentioned
in the next step. You want the version of the Eclipse IDE labeled
"Eclipse IDE for Java Developers," and obviously you want the version
for your operating system. Eclipse will ask you to select a mirror site,
and will then start the download.
Windows (XP or Vista)
The Eclipse download comes as a big ZIP file that you install by
extracting the files to your favorite directory. For this book, we'll
assume that you extracted to C:/eclipse. Eclipse is now installed, but
it will not show up in your Start menu of applications. You may want to
create a Windows shortcut for C:/eclipse/eclipse.exe and place it on
your desktop, in your Start menu, or someplace else where you can easily
find it.
Linux and Mac OS X
The Eclipse download comes as a big tarball (.gz file) that you
install by extracting the files to your favorite directory. For this
book, we'll assume that you extracted to /usr/lib/eclipse.
2. Check for Required Plugins: You can skip this
step if you just downloaded a current version of Eclipse as we
recommended. If you are using a pre-installed version of Eclipse that
was already on your PC, you need to make sure you have the Java
Development Tool (JDT) and Web Standard Tools (WST) plug-ins installed.
You can easily check to see whether they are installed by starting
Eclipse and selecting menu options "WIndows -> Preferences..." The
list of preferences should include one for "Java" and one for "Web and
XML." If they aren't on the list, the easiest thing to do is reinstall
Eclipse, as described in the previous step. Installing "Eclipse IDE for
Java Developers" will automatically get the needed plugins.
3. Install JDK: The Android SDK requires JDK version
5 or version 6. If you already have one of those installed, skip to the
next step. In particular, Mac OS X comes with the JDK version 5 already
installed, and many Linux distributions include a JDK. If the JDK is
not installed, go to http://java.sun.com/javase/downloads and you'll see
a list of Java products to download. The one you want is JDK 6 Update n
for your operating system, where n is 6 at the time this is written.
Windows (XP and Vista)
Select the distribution for "Windows Offline Installation, Multi-language."
Read, review, and accept Sun's license for the JDK. (The license has
become very permissive, but if you have a problem with it, alternative
free JDKs exist.)
Once the download is complete, a dialog box will ask you whether you
want to run the downloaded executable. When you select "Run," the
Windows Installer will start up and lead you through a dialog to install
the JDK on your PC.
Linux
Select the distribution for "Linux self-extracting file."
Read, review, and accept Sun's license for the JDK. (The license has
become very permissive, but if you have a problem with it, alternative
free JDKs exist.)
You will need to download the self-extracting binary to the place you
want to install the JDK on your filesystem. If that place is a system
wide directory (such as /usr/local), you will need root access. After
the file is downloaded, make it executable (chmod +x
jdk-6version-linux-i586.bin) , and execute it. It will self-extract to
create a tree of directories.
Mac OS X
Mac OS X comes with JDK Version 5 already loaded.
4. Install Android SDK: This is where you'd start if
you already have the right versions of Eclipse and the JDK loaded. The
Android SDK is distributed through Google's code site,
http://code.google.com/android/download.html. You will need to read,
review and accept the terms of the license to proceed. When you get to
the list of downloads, you will see a table of distributions. Select the
one for your operating system (XP and Vista use the same distribution).
The package (file) names include the release number. For example, as
this is written, the latest version of the SDK is 1.0_r1, so the file
you would download for Windows is named android-sdk-windows-1.0_r1.zip.
The file you download is another archive file, as with Eclipse: a ZIP
file on Windows, a tar-zipped file for Linux and MacOS X. Do the same
thing as for Eclipse: extract the archive file to a directory where you
want to install Android, and make a note of the directory name (you'll
need it in Step 7). The extraction will create a directory tree
containing a bunch of sub-directories, including one called tools.
5. Update Environment Variables: To make it easier to launch the Android tools, add the tools directory to your path.
Under Windows XP, click on Start, then right-click on My Computer. In
the pop-up menu, click on Properties. In the resulting System
Properties dialog box, select the Advanced tab. Near the bottom of the
Advanced tab is a button, "Environment Variables," that takes you to an
Environment Variables dialog. User environment variables are listed in
the top half of the box, System environment variables in the bottom
half. Scroll down the list of System environment variables until you
find "Path," select it, and click the "Edit" button. Now you will be in
an Edit System Variable dialog that allows you to change the environment
variable "Path." Add the full path of the tools directory to the end of
the existing Path variable and click "OK." You should now see the new
version of the variable in the displayed list. Click "OK" and then "OK"
again to exit the dialog boxes.
On Windows Vista, click on the Microsoft "flag" in the lower left of
the desktop, then right-click on Computer. At the top of the resulting
display, just below the menu bar, click on "System Properties." In the
column on the left of the resulting box, click on "Advanced system
settings." Vista will warn you with a dialog box that says "Windows
needs your permission to continue";- click "Continue." Near the bottom
of the "System Properties" is a button labeled "Environment Variables"
that takes you to an Environment Variables dialog. User environment
variables are listed in the top half of the box, System environment
variables in the bottom half. Scroll down the list of System environment
variables until you find "Path," select it, and click the "Edit"
button. Now you will be in an Edit System Variable dialog that allows
you to change the environment variable "Path". Add the full path of the
tools directory to the end of the existing Path variable, and click
"OK." You should now see the new version of the variable in the
displayed list. Click "OK" and then "OK" again to exit the dialog boxes.
On Linux, the PATH environment variable can be defined in your
~/.bashrc ~/.bash_profile file. If you have either of those files, use a text editor such as
gedit, vi,
or Emacs to open the file and look for a line that exports the PATH
variable. If you find such a line, edit it to add the full path of the
tools directory to the path. If there is no such line, you can add a
line like this:
export PATH=${PATH}:your_sdk_dir/tools
where you put the full path in place of
your_sdk_dir.
On MacOS X, look for a file named .bash_profile in your home
directory (note the initial dot in the filename). If there is one, use
an editor to open the file and look for a line that exports the PATH
variable. If you find such a line, edit it to add the full path of the
tools directory to the path. If there is no such line, you can add a
line like this:
export PATH=${PATH}:your_sdk_dir/tools
where you put the full path in place of
your_sdk_dir
6. Install the Android Plugin (ADT): Throughout this
book, we will make use of the Android Development Tool plugin that
Google supplies for use in building Android applications. The plugin is
installed in much the same way as any other Eclipse plugin:
Start Eclipse, if it's not already running.
From the menu bar, select "Help -> Software Updates -> Find and Install..."
- In the Install/Update dialog, select "Search for new features to install" and click on "Next."
- In the Install dialog, click on "New Remote Site." A "New
Update Site" dialog pops up. Enter a name for the plugin ("Android
Plugin" will do), and the URL for updates:
https://dl-ssl.google.com/android/eclipse. Click "OK."
- The new site should now appear in the list of sites on the Install dialog. Click "Finish."
- In the Search Results dialog, select the checkbox for "Android Plugin -> Developer Tools" and click "Next."
- The license agreement for the plugin appears. Read it, and
if you agree, select "Accept terms of the license agreement" and click
"Next." Click "Finish."
- You will get a warning that the plugin is not signed. Choose to install it anyway by clicking "Install All."
- Restart Eclipse.
- After Eclipse restarts, you need to tell it where the SDK is
located. From the menu bar, select "Window -> Preferences." In the
Preferences dialog, select "Android" in the left hand column.
- Use the "Browse" button to navigate to the place you installed the Android SDK, and click on "Apply," then on "OK."
Congratulations--you have installed a complete Android development
environment without spending a penny. As you'll see in this and
subsequent chapters, the environment includes a very sophisticated set
of tools to make Android programming easier, including:
An Integrated Development Environment based on Eclipse, arguably the
premier IDE for Java development. Eclipse itself brings many valuable
development features. Google and OHA have taken advantage of Eclipse's
extensibility to provide features customized for Android, including
debugging capabilities that are tuned to the needs of mobile application
developers like you.
A Java development environment and Dalvik virtual machine that build
on Sun's JDK foundation to provide a very sophisticated programming
environment for your applications.
A complete mobile phone emulator that allows you to test your
applications without having to download them to a target mobile phone.
The emulator includes features for testing your application under
different mobile phone communication conditions (fading, dropped
connections, etc.).
Test tools, such as TraceView, which allow you to
tune your application to take best advantage of the limited resources
available on a mobile phone.