I want to port an aplication written in C++ to android. Converting the application from C++ to Java will take a lot of work that I would prefer to use on making the application better for that platform instead of fixing convertion bugs and solving refactoring problems.
The NDK seems a good route to take but actually I don’t want to miss a platform(if it is a considerable % of the market) just because the NDK doesn’t or won’t support it.
Android claims to support MIPS, ARM, X86 and others … but actually all the implementations I have seen are only on ARM (or arm compatible).
I checked that on this site:
http://www.pdadb.net/
Would it be a bad desision to use the NDK?
Are there any non ARM devices that run or will run Android?
Where can I find more information about this?
Thanks in advance!
At this point the problem is not that you would not lose market share due to CPU architecture, as there are very few non-ARM Android devices at the moment, the problem is that you may lose market share due to requiring users to run Android 2.3 or later, which you would have to use in order to create a fully native application with access to the window, sensor, and input subsystems.
Avoiding rewriting code is a good goal but you would likely have to rewrite portions of the code anyway due to Android’s dissimilar Window and life-cycle APIs. Now you would have to rewrite some important parts of the code in C++ rather than in Java.
You could try a hybrid approach where you write most of the UI in Java, then make calls to your existing C++ code.
Are you making a game? Then you’ll probably want to deal with these issues and press on with the NDK. If not, try implementing as much of the program as possible in Java and use the NDK for the complex, tested parts of your code that need to be fast.