Android Device Database

By the end of 2009, Google predicts there will be at least 18 Android phones. This is great news, but it also means developers must create apps that work on a wide range of devices. Each phone may have a different screen resolution, support different sensors, and could report a different User Agent string when accessing web sites.

The Idea

Create an online, interactive Android device database. This web site will list every Android device, along with complete specifications. The site should use AJAX so visitors can sort, search, and filter efficiently. Using this site, people can see:

  • Detailed specifications for specific phones
  • Sort by screen size or any other attribute
  • Filter to show phone supporting the accelerometer or any other combination of features
  • Select several phones and compare their features side-by-side
  • etc…

Android Client Software

Part of this project involves a client application running on Android. This application will inspect all of the phone’s features and upload them automatically to the Android device database web site. For example:

  • Screen resolution
  • Keyboard type (physical or soft)
  • List of supported sensors
  • Software version information
  • OpenGL features
  • Anything else we can detect without violating user privacy…

This information is easy to gather, and can be POSTed to the web site as XML or JSON. Once submitted, the information is automatically entered into the phone database along with the User Agent the phone sent.

How I Would Do It

I don’t have time to create this app (I’m working on something else). If I did have time, here is how I’d do it:

  • GWT 1.6 for the web site
  • Google App Engine for the server hosting and data storage
  • Android SDK for the client (duh)
  • Google security to prompt for username/password when submitting a new report
  • Host everything on Google Code with an Apache 2.0 license
  • Use Mercurial for the source code

Moderation Queue

This is a technically easy project. The main challenge I anticipate is fighting bogus submissions and spam. You could implement a moderation queue for any new submissions. Once someone with a T-Mobile G1 submits the first report, all subsequent submissions from identical phones should be identical, and would thus be automatically ignored.

You may need to moderate and approve brand new submissions from phones that are not yet recorded in the database.

Other Ideas

It might be nice if people could post pictures of each phone on the web site. This would be a manual process, as the phone software cannot take a picture of itself.

So what do you think? Is anyone interested in creating this application?


Brian Says:

“Each phone may have a different screen resolution, support different sensors, and could report a different User Agent string when accessing web sites.”

This is why, in my opinion, Windows Mobile was hard to develop for and Android will follow suit. As an application builder, I want to write an app once if at all possible. Trying to design a UI for 10 different screen sizes and plan which functionality is available in what phone seems annoying and wasteful.

Time will tell though, I could be completely wrong…

firmania Says:

i already try compile and running through the emulator, and it takes almost a minute only to show “hello android”, i cant understand what take it so long, is it commonly happen or not? thanks eric :)
*btw i follow your twitter also :D

Mārtiņš Says:

“…as the phone software cannot take a picture of itself.”

Photograph yourself (phone I mean) in the front of a mirror and have Client send this picture to database :)

Mike Says:

A custom application to store info on 18 items? Even if the number of items was 50, there’s already an webapp to do it: docs.google.com. ;-)

Eric Burke Says:

@Mike, yeah, I think that’s the biggest flaw. One additional idea is to have a set of benchmarks that run on each phone, so you can compare relative performance. That would require an app.

Gavin Bong Says:

Eric,

That is an awesome idea. Something like j2mepolish for android.

Sony provides a REST webservice that identifies specs/profiles for their phones.
http://bit.ly/sonydb

Let me know if you need help on starting this.

Charlie Collins Says:

+1 to the idea, I’d be willing to help too. Sounds like you are looking for someone to take it and run with it, I can’t do that at the moment due to other commitments, but I probably could pitch in on occasion.

Definitely interested in a site that stores all of the specs of a phone. Interested to see how this progresses. I like your start on it.