The Device Lab: Part 1

We have a lot of devices in our lab, and for whatever reason we’ve been slow to show them off or talk about how we built the lab. This post is the first in a series digging into what the lab is and some of the technical hurdles we’ve overcome.

humble-beginnings

We started on March 29th of this year with two phones, an original Galaxy S (T-Mobile Vibrant to be exact) with non-working buttons and an HTC Dream (Commonly known as the G1) with a cracked screen. Previous to that we had built AppThwack around emulators hosted on EC2. The emulator route ended up being very beneficial for us as transitioning to real hardware was easy, and we now have the luxury of using emulators, real devices, or a combination of the two.

In those early days we used an old laptop to host the handful of devices we owned, which we controlled using adb over USB connections. Not much has changed in that regard, although we’ve since upgraded the old laptop to a couple blade servers, and our USB hosting is now a maze of hubs and creative power solutions.

We get asked a lot about how we’ll handle device use as we get more and more traffic. Our current queueing mechanism allows us to distribute the load across our test bed as new tests pour in, starting tests as soon as the devices are available. In most instances wait time is less than five minutes, if not zero. As the great Donald Knuth says, “premature optimization is the root of all evil,” so although we have plans for handling various growing pains, we’ll address them as they become actual problems.

Device-lab

In just over two months we’ve gone from the two original phones to 41 phones and five tablets as of this writing with more on the way. Scaling has not been an issue for us so far, and that’s mostly thanks to the modular nature of our underlying platform, Trellis.

We also get asked a lot about where we get devices. Put simply, all over. We buy new phones from various retailers, scour eBay and craigslist, and we recently discovered the awesome service, Swappa.

As of today you can now see a real-time view of the devices we have, their status, and some general data about the lab. The astute among you may notice the ZTE Score is “Temporarily Unavailable.” It was a casualty of the weekend traffic, but rest assured a new one is on its way (Edit: As of June 13th it’s back online and available for testing).

 

Device-lab-view

 

 

In subsequent posts in this series I’ll explore how we select devices to add, how we deal with device stability, and take some better pictures of the lab.

Special thanks to Ben at Swappa for helping us out with device images. If you need a phone or tablet, definitely check his service out.

4 Responses to “The Device Lab: Part 1”

  1. georgefeed

    very interesting what your team has buildquick question, which emulator do you use on EC2?

    Reply
  2. Trent Peterson

    Thanks George. Our service is now 100% real devices.The demo (demo.appthwack.com) uses emulators on EC2 for Galaxy S, myTouch 3G, and a Nexus One.

    Reply
  3. georgefeed

    Trent – thanks for reply. I was curious if you are using the emulators provided by vendors (like android SDK), or one of the open source emulators.Also it would be great if you can share in future posts what differences you noticed between emulators and real devices.

    Reply
  4. Trent Peterson

    The demo is using the emulators included with the Android SDK. As such, they’re fairly slow, but for demonstration purposes they’ve worked well.Emulators vs. real devices is a great idea for an article. We’ve observed some interesting discrepancies that should make for an interesting read. I’ll reply when it’s published.

    Reply

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>