Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Open Source

The Android Developer Experience

With the success of the Apple iPhone, a new surge of development opportunities has arisen in the consumer mobile computing space. However, due to Apple's walled garden approach, some developers have been less compelled to spend a lot of time investigating its SDK. Compounding this closed environment is Apple's insistence to exclusively base the platform's programming syntax to be the same as Apple's desktop OS language of choice, that being Objective-C. While I've written a few simple applications in Objective-C, the language never really captured my interest, and its inability to reuse the code (especially the Cocoa GUI-based elements) on non-Apple platforms further reduced my desire to learn it more deeply. While Objective-C bindings can be wrapped around scripting languages like Perl, Python and Ruby, the amount of work necessary to wire up cross-platform unfriendly GUI's isn't worth the effort. Besides, it doesn't appear that Apple will be allowing any other programming languages to reside on their iPhone platform anytime soon.

When Google announced its Linux-based Android platform that hosted applications written using Java syntax, my mobile development interests were quickly realigned to the open platform mantra that Google was chanting. And yet, even though Google released the Android SDK earlier last year, it wasn't until the physical hardware development units became available in December 2008 did I decide to take a more serious look at this alternative mobile OS.

Signing Up

To become a privileged member of the Android Developer Program, you must first visit the Android Market and create a Gmail account if you don't already have one. The Gmail account is required for Google Checkout, employed for the one-time $25 charge of being granted the permission to post Android applications to the Android Market after agreeing to the lengthy developer agreement. It is also through this marketplace that developers can purchase a single G1 developer device.

Figure 1: The Android Open Handset Alliance home page provides a starting point for obtaining the Android SDK and ordering a G1 developer device.

The Hardware

Unlike the G1 model currently sold at T-Mobile and other stores, the developer G1 is an unlocked model that permits SIM cards from other carriers besides T-Mobile to be used with the device. More importantly, this G1 version offers root user access, giving you full access to the Android filesystem as well as the ability to re-flash the device without constraints. Indeed, adventurous hackers have already created a minimal Debian-based Linux distribution that can be flashed onto the G1. This delightful experiment is nowhere near ready for prime time use, but the fact that it can even be done at all will unquestionably motivate other Linux mobile enthusiasts to charge ahead with even more innovative hacks. Needless to say, the developer unit isn't a device for the technically challenged. As a mark of special exclusivity, the developer unit G1's rubberized back plate has a custom Android polygon design imprinted across it for additional "Android Club" geek-cred points.

Figure 2: The back cover of the G1 dev unit sports a distinctive polygon art form advertising to other Android users of the device's elevated status.

Based on the T-Mobile G1 developed by prolific Windows Mobile hardware designer HTC and modeled upon the HTC Touch, the developer version is everything initial reviews of the consumer G1 said it was: a good first attempt with adequate single touch screen resolution, feature laden with 2G/3G, Bluetooth, GPS and WiFi radios, accelerometer, digital compass and... an abominable battery life. Since I have been using the G1, I have yet to make it through the day without charging it at least twice. However, barring the fact that this ambitious platform performs miserably in the power consumption category, it nevertheless provides a stable development reference platform to create and test Android applications in the real world.

There were other hardware issues that bothered me enough to have to correct with additional accessory purchases. First and foremost, the 1 GB microSD card included with the phone is simply too anemic by today's multimedia standards. While I debated upgrading to a 16 GB card, I opted for a much less expensive 8 GB capacity instead. Another truly bone-headed design limitations (or greedy aftermarket accessory approach, depending on the conspiracy factor) is the G1's proprietary HTC miniUSB-like adapter that is used for both the unattractive, bulky earbuds as well as the power recharge connection. Without additional adapters, G1 users cannot, for example, listen to music and charge their device at the same time. Fortunately, an inexpensive splitter from Amazon (search for "2-in-1 mini USB adapter") solved this annoying dilemma at the expensive of additional bulk clipped to the base of the phone. Finally, what seems to be a standard omission for most mobile smartphone devices these days is a protective carrying case. I decided I had invested enough in phone extras and instead simply left the Mylar cover on that protected the screen during shipping.

Incidentally, in keeping with the burgeoning Android OS hacks, a few enterprising Linux netbook hobbyists have succeeded in compiling the Android source targeting an Asus eeePC sub-notebook. While this certainly generated a buzz in the Android community, using such a device as a G1 replacement isn't practical due to the lack of hardware support such as the sensors and various drivers. Regardless, the feat further strengthens the reality of Android's open source platform promise.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.