Java API và virtual machine tiêu chuẩn được thiết kế chủ yếu cho desktop và server. Chúng không tương thích tốt với thiết bị di động. Vì vậy, Google tạo ra API và virtual machine riêng cho thiết bị di động, gọi là Dalvik Virtual Machine (DVM).
Dalvik VM là thành phần quan trọng của Android runtime và là một phần của JVM được phát triển riêng cho Android. DVM sử dụng các tính năng quan trọng của Java như quản lý bộ nhớ, đa luồng, v.v. Chương trình Java trước được chuyển thành bytecode JVM, sau đó thông dịch thành bytecode DVM.
Chi tiết về cả JVM và DVM như sau:
Java Virtual Machine (JVM)
JVM là ứng dụng cung cấp môi trường runtime để thực thi Java bytecode. Nó chuyển bytecode thành machine code. JVM thực hiện nhiều việc: nạp code, verify code, execute code, cung cấp runtime environment, v.v.
Sơ đồ minh họa hoạt động JVM:

Dalvik Virtual Machine (DVM)
DVM là phiên bản JVM được tối ưu cho thiết bị cầm tay thấp công suất (mobile). DVM tối ưu hệ thống di động cho pin, bộ nhớ và hiệu năng chung.
Chương trình dành cho Android trước viết bằng Java, sau compile thành bytecode cho JVM. Sau đó bytecode này dịch sang Dalvik bytecode và lưu trong file .dex và .odex. Đó là Dalvik executable và Optimized Dalvik executable.
Sơ đồ minh họa hoạt động DVM:
