If you are writing application for the android platform and you have a real need of performance or security you will need to write native code. Using NDK is the only available solution for the time being, but with it you can access your native shared libraries from the comfort of the java language via the jni interface.
With the recent enhancements in the android studio, writing native and java code is easier than ever. Review collected by and hosted on G2.com.
It's quiet tedious to start writing c/c++ code with the jni in mind, and debugging the shared libraries cannot be done without the android application running.
Some test automation are still lacking but that's more due to the nature of the android platform than NDK itself.
You can to some extend write a large portion of the android application using NDK but some services are still missing or require a better support. Review collected by and hosted on G2.com.
