tags:

views:

35

answers:

1

I have a G1 and an HTC Hero handset. All the applications that I've written were tested only on these devices; come new SDK and Android handsets with (support for) different screen resolutions, densities and capabilities I have been asked to estimate the efforts required to port some of the application to new Android handsets such as Droid, Nexus One etc.

I know that making such an estimation would depend a lot on the application that is being ported, what device capabilities it uses and assumes and the way it is written.

This question is an effort to highlight all the things that a developer needs to consider(in general) when making such estimates. Please help.

Thanks.

+1  A: 

In general, you're going to want to consider the following issues:

  • Resolution - different resolutions will cause your UI to look different than the original.
  • Input methods - not all phones have keyboards, some might be missing some other keys, etc. Think about the different possible configurations and how the user would interact with your application in each of them.
  • Performance - on some devices you might have performance issues that you do not see on the G1.
  • Device specific bugs/issues - this isn't really something you can "estimate", but it's definitely something to consider.

Of course, some of these may not be relevant for your application or the devices you intend to target, or you may decide that they aren't important enough to change.

EDIT: Another thing I forgot - if you're using native code in your application (don't remember what it was called, NDK?) it may not run on all devices.

Tal Pressman
Even if the C/C++ code was compiled using NDK? Does that mean that machine architecture for different Android handsets are different?
Samuh
The NDK is just a way to run native code in your application. Being native, it is compiled for a specific architecture, and if the phone uses a different architecture your code won't work.That said, you can still get around this problem, but it means building the native code for all the architectures you want to support and including all of those object files with your app.
Tal Pressman