Android Introduction and First Impressions

Android is a recently-announced, open source mobile-phone operating system and development platform from Google. Apple recently announced an SDK to allow developers to produce native applications for iPhone, though Google’s announcement is quite different from Apple’s where the hardware and software stack are fixed. The Android software stack, by comparison, could be installed on any number of handsets, with service from various mobile carriers around the world. While Apple has a lead hardware-wise with millions of iPhones around the world, Google aims to offer a more flexible and feature-rich development platform, to first attract more 3rd party developers that may have otherwise developed for iPhone, then use those applications to convince consumers to purchase Android handsets (once they start shipping in late 2008). Google has several advantages with Android that contribute to its buzz: they’ve beat Apple to market with an SDK, they’ve provided an API and free tools that millions of Java developers can learn quickly, and they are even allocating 10 million US dollars to pay developers for their applications as part of the Android Developer Challenge (though it is unclear how application developers will make money outside of the ADC).

While the Apple SDK will likely support applications developed in Objective-C using Mac-only tools, Google has provided a Java API for Android development, with development tools for Windows, Mac, and Linux. By using Java, Google can take advantage of much maturity and tooling for the language, the same argument they make with GWT. Google has even shipped an Eclipse plug-in at launch for the popular cross-platform IDE. Eclipse integrates very nicely with the Android “Palm Centro-looking” emulator as well. One criticism (or challenge) leveled at Google is that Android will detract from the official Sun Java ME mobile Java development platform.

Features, Open Handset Alliance

Google applications like Maps (including Street View) will ship with the device. Hardware OpenGL 3D support is available, demonstrated by a short demo of the venerable Quake video game. Google provides scripts to support other Java IDEs like IntelliJ, which means developers aren’t tied to Eclipse. From a hardware perspective, most of the features are dependent on the specific phone. Another positive development for consumers is that Google has selected the open source WebKit browser rendering engine for the Android web browser. With WebKit fueled by innovation from both Apple and Google, it is sure to become the de facto browser engine of choice for mobile devices. Google is also promoting the Open Handset Alliance, which has 30 technology and mobile companies as members as of this writing.

A Hello World sample

The Android Eclipse plug-in lets developers skip project generation altogether (though scripts are provided to automate this). This was not something Google provided initially with Google Web Toolkit, so I noted the improvement. As a Java developer already familiar with Eclipse (and with the Android plug-in installed), a Android Hello World sample can be set up and ran, including an interactive debugging session, in just 15 minutes. My only addition to the otherwise excellent Google documentation is to run your Android launch configuration a second time, once the Android emulator is already booted up. The first time I run the launch configuration I don’t see the Hello World TextView that is supposed to be displayed.

Android hello world

Documentation, media, official blog

Familiar Google code documentation for those that have used the Maps API or GWT documentation, free of excess clutter like marketing information, high-quality and useful JavaDoc, deployment diagrams and more. The documentation alone has clearly been in development for months, with thorough testing and lots of revisions to be sure. Here are videos introducing and demonstrating Android, including an appearance by Google founder Sergey Brin. Official Google Android blog.

Questions

There are still many Android questions to track over the next year.

  • Who are the phone partners? What handsets?
  • Android has at least a lighter and more feature rich version supporting things like a touchscreen, 3G, Wi-Fi, and GPS. Will one device integrate 3G, GPS and Wifi, and still have reasonable battery life?
  • How will Google monetize Android? Will targeted ads be displayed on the device? Will usage data be reported back to Google to be sold?
  • How does this compare with OpenMoko, another Linux-based open source mobile phone software platform, and what impact will it have on Java ME progress?
  • Will non-Google applications be deployable on Java-equipped handsets like Google Maps for Mobile, or Mobile Gmail are today?
  • Will unsupported handsets be able to be flashed to run Android?

Android is a an exciting platform with a bright future. I’m very impressed with the initial release of the Android SDK. I’m personally interested in following Android’s progress and creating applications of my own to run on Android. Are you interested in Android? Do you have objections or questions about the platform? Please share thoughts or suggestions in the comments.



Similar Posts

1 Comment(s)

  1. justin | Jun 6, 2008 | Reply

    Good writeup and lots of good questions Andy. It’s going to be interesting to see how everything plays out later this year and Android playing catchup to the iPhone. With around 5 million Java developers though, there’s definitely a solid technology base of people poised to jump into the mobile market using Android and programming in Java.

Comment guidelines:

Support for articles is not available due to the volume of help requests we get. Anything resembling Spam, or comments that offer little value, will be promptly deleted.

Post a Comment