This post throws some light on when to use Android SDK over NDK or vice versa. This is a on-going post and will be updated as my research continues on SDK/NDK comparison. Please leave comments if you want to contribute in this list.
- Enables legacy code re-use between iOS and Android platforms
- Good for implementing CPU intensive operations that don't allocate much memory like signal processing, physics simulations
- Seems to introduce security and stability issues
- NDK activities disables SDK feature use like broadcast receivers, content providers, services. Some better SDK libraries becomes un-usable in NDK.
- Java has superior memory management model
- Superior threading model
- Better exception handling model
- Rich set of libraries
- Superior support for unicode characters