The native language of Android (as is clear from the documentation) is Java. The entire API to the platform is provided in the form of Java libraries. However, the phone runs Java — javasci bytecode is interpreted to native andropovskiy (Dalvik), which runs on the machine. In addition, there is the NDK (native development kit) — a set of tools and libraries that allow you to compile nativly, POSIX (Linux) code and attach it to this application. Accordingly, there can run everything that is compiled into natiunii code, including interpreters for scripting languages and virtual machines. Until recently, it was impossible to create an application entirely in code nativnom — still needed a wrapper from Java, recently, adding a set nativnykh libraries system API to write naivnoy program from beginning to end, without Java.
From the above it is clear that you can write on almost anything. In reality, in most cases, you write Java, and sometimes cling rewritten bottlenecks and/or third-party libraries in C/C++. The exceptions — games that are often written entirely or almost entirely in C++.