Android programming is essentially Java based. Google has created an optimized virtual machine called Dalvik for Android devices that runs this Java code. But if you feel you need more direct access to the underlying Android system, drivers or hardware for better performance, greater control or if you just plain don’t like Java, you have a choice. You can use the Native Development Kit (NDK). You can use this NDK to create parts of your android application using C/C++. If you look at the NDK website, you will see that Google does not encourage you to use the NDK. The NDK needs to be used only if the Java SDK does not work for you at all.