Introduction
The
Android Software Development Kit (AKA SDK) is a software suite for the Android
mobile operating system that allows you to write applications for Android in
the Java programming language. Most people who use the Android SDK either
develop applications for the Android operating system OR they use it for other
purposes, such as obtaining elevated privileges on an Android device with the
help of third-party software or use it for diagnostic purposes in case of
malfunctioning.
The
vast majority of Android users probably won't have to make use of the Android
SDK, however, it is useful if you wish to learn more about the Android
operating system and even then it's still a handy tool to have in case
something goes wrong.
This
tutorial covers Ubuntu 10.04 Lucid Lynx onwards. For anything prior to Lucid,
you will have to find it yourself.
Preparation and Installation
Before
we set up the SDK, we have some preparation to do. Due to some major changes in
the Android SDK made in the last couple of months, setting up the Android SDK
is not as easy as it was two years ago, when Android was starting to take off.
Setting up the SDK itself is relatively easy once the preparation has been
done.
Downloading the SDK Starter Package
Download
the one for Linux (.tgz file) and once it's finished downloading, extract it to
somewhere safe and easy to reach. For example, the home folder. To do so, open
up a terminal, navigate to the directory where the SDK was downloaded and enter
the following command:
|
$
tar -xvzf android-sdk_rXX-linux.tgz && mv android-sdk-linux ~/
|
As
of 12 May 2012, the Android SDK is currently up to r18, however that is set to
change in the near future, and as such, replace XX with the version of your
SDK.
Setting up Java
Prior
to SDK r08, everything you'll need to develop applications was included on a
100-200MB .tgz archive. However, with the release of SDK r08, the tools
necessary for creating and building applications was removed and can be
obtained by using the Android SDK and AVD Manager which is located in the
/<sdk>/tools folder.
However,
you should not execute the Android SDK and AVD manager just yet, as you'll most
likely get a Parse: XML error notice. The reason for this is that after SDK
r08, it's now required to have Java installed before you set up the SDK. To do
this, we'll download the OpenJDK and the Icedtea browser plugin. In a terminal
window, enter the following command:
|
$
sudo apt-get install openjdk-6-jre openjdk-6-jdk icedtea6-plugin
|
This
will download and install the OpenJDK implementation of Java, which will be
sufficient enough for us to download the SDK platform tools.
Downloading the SDK platform tools
This
is pretty much the actual "installation" of the SDK's platform tools.
One key reason why this step is important is that it contains an important
protocol called the Android Debug Bridge (ADB).
ADB
comes bundled with the SDK platform tools. It is a command-line tool used to
communicate with and control the device over a USB link from a computer. The
tool comes bundled with the Android SDK and is commonly used for diagnosing
problems with the device. Once you have ADB installed, you can use ADB to copy
files to and from the device's internal memory, install apps, run commands, see
logs and more. This makes it an invaluable tool if your device is running into
some trouble that might warrant a new device.
Now,
in order to obtain the SDK platform tools, we'll need to initialize the Android
SDK and AVD Manager that I mentioned earlier. To do so, enter the following
commands in a terminal. The first command will direct you to where the Android
SDK and AVD Manager is located, and the second will execute said program.
|
$
cd ~/android-sdk-linux/tools
|
|
$
./android
|
Once
you do that, a new window will pop up, which is the actual Android SDK and AVD
Manager. Click on "Available Packages" and you will be presented with
two boxes. One is the Android Repository and the other is the Third-party
Add-ons. Click on "Android Repository" then click on Install
Selected. A confirmation window will pop up. Click on "Accept All"
and then click on the Install button to install the SDK platform tools. It's
quite a bit to download so make sure you have at least 512MB to 2GB of hard
drive space available. Once the download has finished, you'll get a notice saying
that the ADB daemon needs to be restarted. Click on "Yes" and
everything will finish downloading.
Post-Installation Configuration
Now
once the download has finished, or while you're waiting for the download to
finish, we have to configure Ubuntu a little to meet our needs. First, we have
to set up the PATH variable to include ADB and other SDK tools, and we have to
make sure our hardware will be detected once we initialize ADB.
Modifying the PATH Environment Variable
In
the days before Android 2.2, a good number of people used to place their
various projects and applications in the directories where the necessary tools
they used existed. This was in itself a very flawed method because it cluttered
up the directories, and while cleaning up the SDK, one might accidentally
delete a crucial file, which will cause the SDK to fail and having to
completely reinstall everything.
Modifying
the PATH Environment Variable will help out immensely when it comes down to
making use of SDK tools like ADB. Doing this will also allow you to execute
certain protocols like ADB from ANY location. So if you're operating from the
Desktop, you don't have to redirect to the SDK's platform-tools folder to make
use of ADB if you need to make use of it.
Enough
chatter, let's get busy. To modify the PATH variable of your system, you need
to edit your .bashrc file. To do so, in a terminal, execute the following
command:
You
will now have the Nano text editor enabled on the terminal. Now, at the very
top of the file, enter the following:
|
|
|
export
PATH=${PATH}:~/android-sdk-linux/tools
|
|
export
PATH=${PATH}:~/android-sdk-linux/platform-tools
|
Once
you're finished, press CTRL + X, Y, and then hit Enter to save your changes and
exit the Nano text editor.
Preparing Hardware
Now
that we have our PATH variable set up, we need to make sure our hardware will
be detected once we initialize ADB. However, up until Natty, udev in Ubuntu wouldn't allow ADB access to the Android
phone via USB. This was fixed in udev version 165-0ubuntu1 — if you
are running an earlier version (apt-cache policy udev will tell you
whether you are), you'll need need to create a new udev rule file as root.
In
a terminal, execute the following command that will create the rule file. This
will utilize the graphical sudo command, so that we can still have control over
the file if we're not a root user.
|
$
gksudo gedit /etc/udev/rules.d/51-android.rules
|
Copy
and paste the following udev rules in the text editor that opened up which
contains the new rule file we created. The rules included should work with most
if not all Android devices across multiple manufacturers, such as HTC,
Motorola, LGE, and so forth.
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="0bb4", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="0502", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="12d1", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="1004", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="22b8", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="04e8", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="0fce", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="0489", MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="18d1", SYMLINK+="android_adb",
MODE="0666"
|
|
SUBSYSTEM=="usb",
ATTRS{idVendor}=="04e8", MODE="0666",
GROUP="plugdev"
|
Once
you've copied and pasted the udev rules in the text editor which contains your
newly created rule file, save your changes and quit. Now that you've set your
udev rules you have to reboot so that ADB will be in your path.
To
test your changes, open up a terminal and execute the following:
Note:
You may need to enable USB debugging mode on your phone first in order for it
to be recognised.
This
will give you two messages:
1)
It will tell you it's initializing the ADB daemon. 2) It should show you a list
of connected devices.
If
all went well you should see your device's serial number under the list of
connected devices. If you see a message like:
|
List
of connected devices
|
|
????????
No permissions
|
This
means your hardware was detected, however you made a mistake in configuring
Ubuntu or the udev rule for your phone's manufacturer was not listed.