I am working on an Android app that I want to run on all Android devices without any problems, but I’m having a hard time trying to determine how many device configurations and how many hardware devices I should have for testing.
There are several features that I am using which are not supported in the emulator, as mentioned at the bottom of Using the Android Emulator in the Dev Guide:
Emulator Limitations
In this release, the limitations of the emulator include:
- No support for placing or receiving actual phone calls. You can
simulate phone calls (placed and received) through the emulator
console, however.- No support for USB connections No support for camera/video capture
(input).- No support for device-attached headphones No support for
determining connected state- No support for determining battery charge level and AC charging
state- No support for determining SD card insert/eject
- No support for Bluetooth
The Multiple APK Support page states:
…we encourage you to develop and publish a single APK that supports as many device configurations as possible…
Android Market allows you to publish multiple APKs under the same
application listing. Android Market then supplies each APK to the
appropriate devices based on configuration support you’ve declared in
the manifest file of each APK.
I would assume that it’s not necessary to cover every single permutation of all the available feature sets, but it’s not clear to me how many device configurations would be considered sufficient to cover all the devices available.
If I wanted to confirm on hardware that my app is almost guaranteed to work on every device, how many phones and how many tablets would I need? Also, are there any special considerations I need to make for manufacturer- or carrier-specific modifications?
Answer Updated on 11/15/2011
Use android website stats to glean info on the most popular os version(s).
Use android website stats to get the most popular DPI/screensize combination(s).
Use a combination of 1&2 to determine the specs of devices you want to cover.
Prepare a rough listing of devices which would meet (3) above.
If you have A lot of money, -or- if you work for a big company then order the phones. If not, then as others have already mentioned choose the one device which can provide you with max coverage. Sadly, the difference between the emulator and devices can be ridiculous at times. The other option that i found out only recently is that you can outsource this process to companies which exclusively focus on this market need. Unfortunately, I don’t have any specific company to recommend in this area. Good luck !
Updates:
I came across a couple of companies that are offering Android Testing as a Service. These would be good options to test your APKs without having to purchase the devices.
You may want to give APKUDO a try: http://www.apkudo.com/
”
See your app run on every Android device. Free.
Apkudo helps developers release with confidence by installing, executing, and exercising their apps on every Android™ device, with detailed test reports & streaming video. Currently in private beta.
“
[Update – 3/25/2013]
http://testdroid.com/product/testdroid-cloud
”
Test online on Real devices Testdroid Cloud is the simplest way to test your application against various real Android devices – from different manufacturers, with different HW platforms, OS versions and screen resolutions. You can also pick and choose on what devices to run your tests, just on the devices you are interested in
“
AppThwack is another solution
Ranorex is yet another solution (http://www.ranorex.com/mobile-automation-testing/android-test-automation.html)