I'm not quite sure which kind of code is loaded into the linux process on android platform.
If android adopts Dalvik, the process contains a Dalvik VM and the code of the application, is the code in the form of Dalvik byte-codes? If yes, is the code the same as the classes.dex in the .apk file?
If android adopts Android Runtime (ART), as the classes.dex has been translated into native machine code, so I think the app's code in the Linux process will not be the Dalvik byte-codes, but the native machine code. If my understanding is right, then is the Dalvik VM still contained in the process?
As of Android 5.0(Lollipop), Dalvik has been entirely replaced with Android Runtime(ART), which processes native binaries.
Verifying App Behavior on the Android Runtime
To be more specific, Dalvik promotes the use of odex files, which were pre-processed optimized versions of the dex files for Dalvik to either interpret or JIT compile.
ART promotes the use of ELF files, which are is a generic format that guides the linking of certain functions and objects to the native instructions for your device, performed on install.
Wikipedia - Android Runtime
Executable and Linkable Format - Applications
ART does not contain an instance of Dalvik, and although mostly compatable, it's mentioned that some features supported by Dalvik aren't supported by ART.
Verifying App Behavior on the Android Runtime