(Android user programs run in the Dalvik virtual machine, and each user program corresponds to a separate Dalvik virtual machine instance. The Dalvik virtual machine instance in the Android application is actually copied from the address space of the Zygote process, which can speed up the startup of the Android application. Dalvik virtual machine shares similar features with Java virtual machine. For example, both of them are interpretation execution, and support JIT, GC, JNI, and JDWP. The difference is that the command sets executed by the two are different, and the command sets of the former are basic registers, while the command sets of the latter are warehouse based. This PPT talks about the memory management, garbage collection, instant compilation, Java local calls, process and thread management of the Dalvik virtual machine. Understanding the above implementation details of Dalvik virtual machine is helpful to fix the behavior of the program at runtime, for example, blocking the call of Java functions.)