Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I'm starting to develop for Android. Do I need to buy a certain Android phone to test my application, or does any android phone work?

share|improve this question

marked as duplicate by gnat, Martijn Pieters, MichaelT, GlenH7, Kilian Foth May 12 '13 at 13:11

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

keep in mind that there are model (and brand) specific extensions to Android, as well as many different versions of Android with different APIs.
A single phone is unlikely to be enough, unless you plan to market your product to a relatively small group of users.
If you want to reach a wider market, you'll need several models from several manufacturers with different versions of Android at least for testing purposes. Of course you can appeal to friends and relatives with such phones to let you borrow them or to test for you, reducing cost :)
As to what phone to get for yourself, I'd go for a model that meets about the lowest specs you want to target your application at. That way you're not going to end up writing something that works fine on your high spec device but in the field fails utterly because it just doesn't work smoothly on the things it was meant to run on.

share|improve this answer
I would definitely look at what range of android versions you wish to support. Do you want top 100% coverage or are you happy with 80% if this is all new android devices purchased in the last year? Many people still have phones with very old android versions but the market is exploding and soon many more will have the newer 2.3 + versions. – Ross Jun 1 '11 at 6:56
+1 "As to what phone to get for yourself, I'd go for a model that meets about the lowest specs you want to target your application at." - this would give you access to the largest possible number of users. – therobyouknow Jun 1 '11 at 7:59
not just that, Rob. It also means you can test to the poorest performance you can expect in your deployed base, thus preventing unexpected performance problems reported by customers. – jwenting Jun 3 '11 at 17:38

Take a look at the percentage of users by screen size on the android developer website. I would suggest that you get a phone of normal size with an hdpi resolution. This will cover 71% of users as of December 1, 2011. The Evo from Sprint(any version) and the Samsung Galaxy S2 are some good choices that fall into this category.

By getting a phone that is similar to what most people have you can be sure your application is working correctly for most users. You can always use the emulator to test less common resolutions. Are you really going to test your application on a screen size that covers .1% of Android users every time you put up a new build? Unless you have a large development team or a very simple application, I doubt you will.

share|improve this answer

To develop for an Android phone, you should test the application you are developing with a phone that has the features your application is using.
As Android phones can have different screen resolutions, it would be useful to test the application on a tablet phone and another phone with lower screen resolution. It would also help if you can test the application in a phone that doesn't have the feature being used from your application, especially if the application is using a workaround, in the case the feature is not available.

share|improve this answer

I think the 400x800 (or 400x854 annoyingly for some) display resolution is the most common.

Some popular ones from the past year or so:

Motorola Droid

Motorola Droid2

HTC Incredible

HTC Evo 4G

Samsung Galaxy S

Then there is always the Nexus S.

Pay for better performance, don't design for the lowest common denominator. Assume that newer phones will be better/faster than old ones so design for the latest, then test on the slowest and adjust as needed.

You will have to design/test on other screen resolutions using the emulator. Emulator is pretty good, but not perfect. So having at least one real phone for testing is a must.

share|improve this answer
Do you happen to have a source for your list above? I'm finding it very hard to find non-anecdotal lists of most prevalent Android phone models out there. Best semi-objective data I've found in a 10 minute search is this:… – Jon S Jun 15 '11 at 1:17
My info comes from stats for my app. Android Market developer console now provides data on what phone models have your app installed. So you will get different info from different developers. – Fraggle Jun 15 '11 at 17:10

I'd get 2 cheap phones, then you can test out your multiplayer games and your social applications that you write via bluetooth or via WiFi or 3G. That's what I've done (well sort of: a more expensive HTC Desire Z and a much cheaper bargain ZTE Blade branded as Orange San Francisco that I flashed with custom firmware 2.2 to get rid of all the operator junk.) Cheap phone because like @jwenting says this will ensure that your app works on the lowest common denominator device. 2 phones because of the social, multi-user element. Social mobile computing is an exciting area.

share|improve this answer

I'd go with a phone that has an Android implementation that is as close as possible to the vanilla version, i.e. one of Google's phones. All phone manufacturers modify Android in some way but they do have to follow the compliancy specification. Different phones have different quirks, and support different versions of Android. Depending on the functionality of your application, you might want to look up the APIs you are going to use and see in what Android version they were introduced, or you might end up with a phone that does not support what you want to do.

share|improve this answer

You can test your applications using any android phone. For app quality purposes, you should look at how Android support several screen sizes. Also, i highly suggest using different API level emulator with all screen sizes for testing purposes.

share|improve this answer

Technically, you don't need an Android phone for testing an app (although it is recommended).

That's why they have emulators.

share|improve this answer
Testing should be done on a physical phone before releasing. Besides, maybe the OP is using phone specific features like bluetooth or the camera (warning: I haven't touched the emulator in a year in a half, so maybe this is out of date) – TheLQ Jun 1 '11 at 2:24
Right but can any phone really work for android development? i want to make applications like games and applications like where one can download applications pertaining to an online store or church (like this…) Does an LG Optimus just as perferable over a Samsung galaxy 4G or should I buy ones like the Samsung where it has a much bigger screen? – user26720 Jun 1 '11 at 2:39
-1 I don't think someone should release an application they haven't tried in real world conditions. – Ziv Jun 1 '11 at 16:00
The Android emulator can't test everything (e.g. the accelerometer). It should be used for testing, but shouldn't substitute testing on an actual Android device. – Bernard Jan 4 '12 at 16:07
The OP doesn't specify any specifics, so the answer of using an emulator is completely valid. – dvallejo Apr 6 at 22:21

Not the answer you're looking for? Browse other questions tagged or ask your own question.