Installing Android development environment on Ubuntu 9.04

I wanted to play with writing Android apps on my home Linux computer, which is currently running Ubuntu 9.04 (Jaunty Jackalope). These are mostly notes for myself, so don’t feel guilty if you skip this post. :)

- Make sure your system is up-to-date:

sudo apt-get update && sudo apt-get upgrade

- Install Java

sudo apt-get install sun-java6-jdk

- Switch Sun to be the default version of Java. It’s much faster than the built-in version, at least when I tried it.

sudo update-java-alternatives -s java-6-sun

- Make a directory, e.g. mkdir ~/android

- Download Eclipse from (I chose the “Eclipse Classic 3.5.1″ version). Move the code into that directory, then unpack it. Unpacking is enough–the software runs in place and doesn’t have to be installed onto the system other than unpacking it.

mv eclipse-SDK-3.5.1-linux-gtk.tar.gz ~/android
cd ~/android
tar xzvf eclipse-SDK-3.5.1-linux-gtk.tar.gz

- Download the latest Android SDK from and move it into that directory, then unpack it. I believe unpacking is enough–the software runs in place and doesn’t have to be installed onto the system other than unpacking it.

mv android-sdk_r04-linux_86.tgz ~/android/
cd ~/android/
tar xzvf android-sdk_r04-linux_86.tgz

- Edit your ~/.bashrc file and add a line to the bottom:

export PATH=${PATH}:/home/matt/android/android-sdk-linux_86/tools

Okay, now Java, Eclipse, and the Android SDK are installed. Now you need to install the Android Development Tools (ADT) for Eclipse.

- Run Eclipse. If you installed Eclipse in ~/android/eclipse then you can cd to that directory and run ./eclipse to start the program.

- Install the Android Development Tools (ADT) for Eclipse. Follow the excellent instructions at to get and install the ADT. Don’t forget the “Window > Preferences” step to tell Eclipse where the Android SDK is, so when you click “Browse…” you might navigate to /home/matt/android/android-sdk-linux_86 for example.

- Next, I installed a bunch of packages. In Eclipse, click “Window->Android SDK and AVD Manager.” In the resulting window, on the left-hand side will be an “Available Packages” option. I clicked on that, then clicked the checkbox beside the “repository.xml” package to select all available packages and then clicked “Install Selected.” 12 out of the 14 packages installed for me.

- Now you’re ready to create your first Android program . You’ll discover how to make an Android virtual device (AVD) along the way.

- If you want, you can get custom skins, e.g. a Nexus One skin for Android. You can unpack the .zip file in <your-sdk-directory>/platforms/android-x.y/skins/nexusone for example. Then create a new Android virtual device (AVD) and select the Nexus One as the skin.

- If you want to run your Android program on your own Android device, you’re pretty close. Follow step 10 of this walkthrough. When you’re done and the phone is disconnected from your Ubuntu machine, you’ll still have the executable, called an “android package” or .apk file on your phone. So you can show your friends your “Hello, World!” program. :)

Some resources that I found helpful (other than the official Android developer site) are below:
- You might also want to watch this O’Reilly video or some of the official videos.

If you found this post at all interesting, you might also be interested in Google I/O too. Google I/O happens on May 19-20, 2010 in San Francisco.

Keep an eye on changing pages

Google just launched a nice feature on Google Reader: the ability to keep an eye on pages for changes. This works even if the page doesn’t have its own RSS feed. This sort of thing is very handy. You could use it to spot new things on a privacy policy page or watch for changes in the executives page at another search engine.

Check out the blog post, but it’s easy to use: just add any url to Google Reader.

PubCon 2009 talk: State of the Index

If you followed @googlewmc on Twitter you would already know about this, but I recently recreated my “State of the Index” talk from PubCon in November 2009. Here’s the video of the talk below:

And here are the slides if you’d like to follow along:

The talk is almost half an hour, so I hope you enjoy it and learn something new!

Google earnings via YouTube webcast?

Huh. This looks new. I headed over to to listen to the Google earnings call. Normally the webcast uses Windows Media Player or Real Player, but this time it looks like the earnings call is being hosted on a YouTube channel: instead. Cool. Go check it out if you want to listen along.

Added: MG Siegler noted the change as well.

More info about synonyms at Google

Steve Baker, an engineer in the search quality group at Google, just did a nice post about synonyms on the Google blog. A lot of people seem to think that Google only does simple-minded matching of the users’ keywords with words that we indexed. The truth is that Google does a lot more sophisticated stuff than most people realize. I’d say that Google does more with “semantics” and both document and query understanding than almost any other search engine.

Read the blog post for more info, but I liked a couple examples that Steve mentioned. “Pictures” and “picture” often mean the same thing, but the query [arm reduction] is very different than [arms reduction]. Also, in the query [dura ace track bb axle njs] the “bb” is probably referring to a bottom bracket while in the query [software update on bb color id] the “bb” probably means blackberry.

Still not convinced? Here’s some new stats from Steve that we haven’t made public before:

However, our measurements show that synonyms affect 70 percent of user searches [note from Matt: of course, it could be a subtle change] across the more than 100 languages Google supports. We took a set of these queries and analyzed how precise the synonyms were, and were happy with the results: For every 50 queries where synonyms significantly improved the search results, we had only one truly bad synonym.

I hope Google continues to open up more about search quality and talk more about our search rankings. Steve is a smart engineer. I love that Google has a lot of smart engineers like Steve and with any luck we’ll continue to highlight the sort of work that those engineers do.

As far as concrete advice for webmasters, the same advice still holds that we’ve always said: think about the different words that searchers might use when looking for your content. Don’t just use technical terms–think about real-world terms and slang that users will type. For example, if you’re talking about a “usb drive,” some people might call it a flash drive or a thumb drive. Bear in mind the terms that people will type and think about synonyms that can fit naturally into your content. Don’t stuff an article with keywords or make it awkward, but if you can incorporate different ways of talking about a subject in a natural way, that can help users.

Added, Jan 22, 2010: Another nice post on the Google blog, this time about highlighting users’ answers directly in search result snippets.