Does one android app in my android phone run with its own dalvik virtual machine(one app one dalvik vm)?
Or every app in my android phone shares the same single one dalvik virtual machine?
My phone is android 2.3.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently.
The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimised for minimal memory footprint.
The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.
Also have a look at What is... The Dalvik Virtual Machine for detailed description about DVM.