Developing For Other Tablets? – Android

I kicked off this series last week looking at developing for other tablets, with RIM’s PlayBook getting us off to an abysmal start. I did promise webOS this week, but as they’re tablet SDK is so new, it’s not instantly available to everyone. I’m in the process of applying for access, so hopefully I’ll be able to report next week. So we’re going to have dessert first with Android and Honeycomb.

Android Tablets

There have been a few tablet devices that have come to market already that run the same version of Android that you find on phones. These have generally been smaller screen devices, such as the 7 inch Samsung Galaxy Tab. What we’re about to see, though, is the new generation of Android tablets running Android 3.0 – a.k.a. Honeycomb – which has been specifically built for tablets. Perhaps the most notable of these, and the most imminent, is the Motorola Xoom. The Xoom boasts a 1280×800 widescreen display, a 1 GHz dual core processor, and 1 GB of RAM. The other forthcoming Honeycomb tablets look to be similarly specced, which may ease the pain of developing for multiple devices, at least in the short term.

The Tools and Docs

In general, it would seem that Google have some very good documentation, and so far there hasn’t been any part of the process of getting set up for development that I’ve been stuck on. However, installing the tools you need is very clunky and slow. The process involves downloading a Java app that connects to the Google servers and gives you list of options for what you can install. I just went for all the defaults and things seem to work OK. You’ll also need to download Eclipse, and install the Android plug-in. Although Eclipse isn’t your only option for an IDE, it seems that most people are using it. There’s plenty of sample projects bundled in to browse through, although I found errors and warnings in the code I loaded.

So far things have been OK, but far from perfect. It seems to me that Google are happy that things are good enough. The experience for developers may not be as polished as it is in Apple’s camp, but it’s passable. With one exception, that means I haven’t been able to do any Android tablet development at all.

The Emulator

When I’m developing for iOS, I use the simulator 90% of the time, and only check on the device occasionally. Being able to quickly deploy to the simulator rapidly speeds up development – perhaps other people work differently, but I’ve found that doing all I can in the simulator is a good strategy for being as productive as possible. Of course, when you’re dealing with devices that haven’t shipped yet, the simulator is your only option. And the Android emulator is woeful. Here it is:

You probably all think I’m dumb for not noticing that it’s rotated wrong, but actually there’s a bug that means that that’s the orientation the emulator is stuck on. But your main problem is that it’s unusably slow. The interface runs at something like 1 frame per second with memory warnings all over the place. There is literally no way you could develop an app using this thing. According to Google:

“Because the Android emulator must simulate the ARM instruction set architecture on your computer, emulator performance is slow. We’re working hard to resolve the performance issues and it will improve in future releases”

Now I’m no architecture genius, but it strikes me that this is a lame excuse. Apple, HP and even RIM have managed to work out how to get a fast performing emulation of their platform on a computer, by compiling it for the native architecture (I think…). What’s stopping Google doing the same? There are signs that emulator performance has been an issue for previous generations of the OS too, so I don’t hold out a lot of hope that it will improve that much.

I’m sure there must be some big technical issues, and I hope it does get better in time. Of course the other option is to hedge your bets and shell out for a tablet, hoping that it pays off, and that nothing else hinders your progress. And in fairness, you should really be testing on a device anyway.

The real issue in my mind, though, is not the emulator. It’s the fact that Google thought it was good enough to ship it as it is and waste everyone’s time who tries to develop for it. I get this constant feeling that third party developers in the Android world are thought of as second rate citizens, and their general approach is “that’ll do – it’s only for the devs”. That’s not an environment I want to work under.

Review

1 star – has potential but really needs an update! Even then, when factoring in the stories you hear from people already developing for Android, as well as platform fragmentation, and distribution and monetization issues, there are just too many things making me nervous. Android has been a very popular choice in the mobile phone market, but looking at the OS and the cost of the devices so far, I see no reason why that should continue in the tablet market. I guess time will tell, but I have absolutely no immediate plans to be developing for Honeycomb, and I’d advise anyone looking into it to at least wait a few months to see how things pan out.

3 Responses to “Developing For Other Tablets? – Android”

  1. Will says:

    I’ve been working with Android for awhile and have noticed the emulator to be pretty slow too (even compared to the phone I develop on). I’ve noticed that setting the device resolution low helps a lot for speed, so that might be worth trying on the tablet.

    Developing for Android phones is much easier when directly running on the device, so hopefully that is true with tablets as well once they come out. The Eclipse plugins made it quite fast to deploy, and debugging on the device in Eclipse works surprisingly well.

    For my most recent project I’ve been working in C++ with the Android NDK instead of Java, so I can run Android and Win32, so I haven’t used the emulator in awhile, and I use the device only when I want to test gameplay/controls.

  2. Luke says:

    Thank Will – good to know that there are some work arounds.

  3. ChrisInAber says:

    Thanks, Luke, these overviews are very useful. Your comments on the emulator match closely with my own experience with Android about a year ago – depressing it has not improved over that time… Will is right that it is easier with an actual phone, but I don’t want a phone plugged in all the time when developing on my MacBook on the go.

Leave a Reply

Spam Protection by WP-SpamFree