At the moment, the problem is not that you will not lose market share due to the processor architecture, since there are currently very few devices without ARM devices on the market, the problem is that you can lose market share due to of what users run Android 2.3 or later that you will need to use to create a completely native application with access to windows, sensors and input subsystems.
Avoiding code rewriting is a good goal, but you may have to rewrite some of the code anyway due to heterogeneous Android windows and lifecycle APIs. Now you have to rewrite some important parts of the code in C ++, and not in Java.
You can try a hybrid approach when you write most of the user interface in Java and then make calls to existing C ++ code.
Are you making a game? Then you probably want to deal with these problems and click on NDK. If not, try to implement as much of the Java program as possible and use the NDK for the complex, tested parts of your code that should be fast.
Nate
source share