Android software development is the process by which new applications are created for the Android operating system. Applications are usually developed in Java programming language using the Android (SDK), but other development environments are also available.
Until around the end of 2014, the officially supported integrated development environment (IDE) was Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin.
Enhancements to Android's SDK go hand in hand with the overall Android platform development. The SDK also supports older versions of the Android platform in case developers wish to target their applications at older devices.
Development tools are downloadable components, so after one has downloaded the latest version and platform, older platforms and tools can also be downloaded for compatibility testing.
Libraries written in C, C++ and other languages can be compiled to ARM, MIPS or x86 native code and installed using the Android Native Development Kit (NDK). Native classes can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes.
Complete applications can be compiled and installed using traditional development tools. However, according to the Android documentation, NDK should not be used solely because the developer prefers to program in C/C++, as using NDK increases complexity while most applications would not benefit from using it