What hardware devices do you test your Android apps on?
The emulator that comes with ADK for use under Eclipse is fine for testing basic Android application functionality, but:
- it's not very performant
- it doesn't reflect real-world hardware and software configurations
- it doesn't support varying input devices such as d-pads, touch screens, trackballs or even Bluetooth/USB controllers.
Android Developer posts some very helpful rolling graphs of开发者_如何学JAVA Platform versions, Screen sizes and densities, and OpenGL ES versions as extracted from Android Market:
- http://developer.android.com/resources/dashboard/platform-versions.html
- http://developer.android.com/resources/dashboard/screens.html
- http://developer.android.com/resources/dashboard/opengl.html
Those really help to narrow the scope of some of the choices, but I find myself really wanting to know what the proportions of input methods various devices support are... is touch represented by 90% of the market, or only 5%? What proportion of those support multi-touch?
For example... anyone who has played the free and open source game Replica Island ( http://replicaisland.net/ ) will know that how you control the game varies between devices because it supports multiple input methods. I think Chris and Genki have done a fantastic job here, but if you use touch screens you know that the game is much more playable on 5-7 inch devices than it is on 10+ inch devices. This is because the left-right slide control doesn't maintain the same physical size as the screen size increases - meaning that you have to move too far on large touch screen devices (such as Honeycomb tablets) to be comfortable.
These are the sorts of issues you only find out when you start using various hardware devices to do your testing on. Or you can wait until users do your testing for you and start bringing your app ratings down.
So after my long introduction, here are my questions to you:
- What collection of hardware devices have you bought to use in your software development and have you found those choices to have been beneficial or detrimental?
- Do you instead use 3rd party testing services and just tolerate the long turnaround times between test reports (hours/days instead of instant gratification)?
For me test devices are sort of like pickup trucks: I'll make friends just to get access to their phones ;-)
Seriously, I do tap friends and family as resources. I'm a small shop and can't afford to buy a lot of test devices. Yet even with this limited pool of resources I've go the following devices available and it seems to have served me well:
- Original Moto DROID (seems like such a dog now).
- DROID Pro (broken screen but still good for testing).
- Asus eTransformer
- Samsung Galaxy Tab (7")
- HTC Rezound (my personal phone--it rocks)
- Samsung Charge (my wife's phone)
- DROID X (son-in-law)
- HTC-something I can't remember right now (daughter & son)
- Amazon Kindle Fire (father).
So, as you can see, without spending a fortune I've got a pretty good set of test devices, not counting all the friends I press into service as beta-testers. With all those I really haven't had many problems with platform specific issues. I hear a lot of grumbling about fragmentation (perhaps mostly from iOS developers), but if you develop your app intelligently it isn't a huge issue.
At this stage I'm just testing with two phones:
- HTC Magic (3.5" touchscreen)
- Samsung Galaxy S II (4.3" touchscreen)
There's a pretty big difference in the perceived density between these phones, so it's been helpful for comparison in testing my own games. The major omission at this stage is a tablet - just haven't been able to justify the cost yet.
I'm also playing around at the moment with LCDDensity for Root which allows you to change the screen resolution on-the-fly. Interesting to see what the same sized screen would look like with more pixels stuffed in (i.e. closer to Retina display)
I have own collection of devices:
- tablet with 10" screen (Motorola Xoom);
- Nexus S as reference smartphone;
- device with hardware keyboard (Motorola Droid);
- one device from HTC (HTC Desire HD). I need it because it has slightly different UI (HTC Sense) and HTC phones are quite popular in my country. It is the least useful device in the collection;
- a pair of devices with non standard screen resolutions.
精彩评论