From your experience, to develop an Android software for the marketplace, do i need a real Android device to test my applications or emulator is enough?
views:
193answers:
6As with all mobile development, it is better to have a real device for final testing. You can get by without it, but it is not ideal.
Technically you can get away with this, but why would you want to? You really risk unhappy customers when you find out that something that was OK in the emu doesn't work on the real deal.
For very simple applications The emulator is probably fine. However there are allot of things which can only be effectively tested on an actual phone, location tracking, intercepting incoming calls, etc. I think everyone would recommend you text your application on a device as a best practice.
It's also wise to keep in mind that currently there is a wide range of devices on the market with different types of hardware and behavior. Because of this it is hard to truly know how your application will perform on all devices.
Personal experience when working with Windows Mobile:
The emulator was great. Like, really really great. You could do whatever you want it, and everything. However, it came with a snag. A tiny little snag that turned into this huge thing. You see, Microsoft delivered a d3dmref.dll
with it, which contains every single function Direct3D Mobile can provide.
However, hardware manufacturers are free to support whatever they want.
So what worked in the emulator has never worked anywhere else. And even when I had something in DirectDraw that worked fine in the emulator and on my PDA, it looked completely screwed up on my friend's (newer) phone.
Yes, you can get by, but you're dealing with a lot of unknowns.
I agree that you get a much better "feel" for how an app works when running on an actual device. However, don't fall into the trap of assuming that testing on one device proves out its usefulness in the entire marketplace. One of Android's strengths is the variety of platforms that are supported. When it comes to testing an app, this makes it a liability too. I would recommend that you also test AVD's with different screen resolutions than whichever actual device you buy. Also, reference the Android topic on supporting multiple screen resolutions. Additionally, it's a good idea to choose your SDK level appropriately so as not to limit the number of devices your app will run on (discussed a little in posting 2685117)
A recommendation would be having an old G1 or Magic with 1.5. I primarily use an N1 which is nice for getting a tactile feel of the application and is usually pretty similar in speed to the simulator. However, there are plenty of performance issues you only notice on low powered devices and there are more quirky little bugs in 1.5 than the later version (1.0 neglected because of lack of market share). I find it useful to at least test against your lowest hardware and software specs to gauge the lowest end experience people will have with an application.