what language android apps written
Android Application Framework
Android is built on a Linux kernel, but encapsulates its application layer for security purposes. Android runs each application in isolation from other apps. This also limits an app's access to the software and hardware components that are explicitly declared as necessary in the manifest that accompanies Android apps in their software package. Based on this manifest, and the other program files inside the developer's software package, Android creates a virtual machine specifically to execute that one app.
The most common language for writing Android apps is Java. The virtual machines that Android creates for each app running on its system is a variant of the Java Virtual Machine (JVM), which translates Java bytecode into platform specific machine code. Consequently, the software development kit (SDK) which Google provides to give programmers easy access to the software features of Android, as well as to interact with the hardware on which Android is running, consists of libraries with Java classes and methods.
The Java programming language is a higher-level language than programming languages such as C or C++. While programs in C or C++ can issue commands directly to a device's hardware, the JVM interprets Java source code, and produces its own code for interacting with hardware. In some instances an Android programmer wants to directly create optimized code for a particular part of a program, rather than letting the JVM handle this process. For those instances Google has a Native Development Kit (NDK) that allows programmers to create apps or app components in C or C++.