All of the Android apps run in Dalvik. This is the core or foundation of how Android apps can run on a variety of devices with many different amounts of RAM and processors.
Dalvik is a virtual machine which compiles the code that makes the Android apps work. Mostly, Android apps are written in the Java programming language and they are compiled into bytecode, which is the generic numeric code that is submitted by the developers to app stores like Google Play. That bytecode then gets transferred from a Java Virtual Machine file into a Dalvik executable file.
Some of the readers may think that all their apps and the code that makes them live in a happy place somewhere inside their smart phone. But really, this is not anything like that. That happy place does not really exist. In reality, every time a user runs an application, the bytecode that comprises the program is automatically run through a compiler that makes it work. In Android platform, this is done through a process which is generally known as a “Just in Time” or JIT compiler which translates the universal bytecode into the machine code; which in turn, automatically becomes a hardware-specific program known as an application. This is essentially what the Dalvik in an Android device does.
Just imagine: every time an Android user opens an app, all the different parts of that smart phone are responsible for making that app work have to scramble to assemble the code for the application to make it work on the device. When the user closes the app, all those parts get to relax. The user opens it, and they scramble again and again. And this can’t be a very efficient way to run applications, but this method allows apps to run basically just anywhere.