Java API มาตรฐานและ Virtual Machine ถูกออกแบบมา 주로 สำหรับระบบเดสก์ท็อปและเซิร์ฟเวอร์ พวกเขาไม่ได้เข้ากันได้ดีกับอุปกรณ์มือถือ เพราะฉะนั้น Google จึงสร้าง API และ Virtual Machine ที่แตกต่างสำหรับอุปกรณ์มือถือ ซึ่งเรียกว่า Dalvik Virtual Machine
Dalvik Virtual Machine เป็นองค์ประกอบสำคัญของ Android runtime และเป็นส่วนหนึ่งของ JVM (Java Virtual Machine) ที่พัฒนาขึ้นมาเฉพาะสำหรับ Android Dalvik VM ใช้คุณสมบัติที่สำคัญใน Java เช่น การจัดการหน่วยความจำ multi-threading เป็นต้น โปรแกรมใน Java จะถูกแปลงเป็น JVM bytecode ก่อน จากนั้นจึงถูกแปลเป็น DVM bytecode
รายละเอียดเกี่ยวกับ JVM และ DVM ทั้งสองมีดังนี้:
Java Virtual Machine
Java Virtual Machine เป็นแอปพลิเคชันที่ให้สภาพแวดล้อมรันไทม์สำหรับการดำเนินการ Java bytecode มันแปลง bytecode เป็น machine code JVM สามารถดำเนินการหลายอย่างได้ เช่น โหลดโค้ด ยืนยันโค้ด ดำเนินการโค้ด ให้สภาพแวดล้อมรันไทม์ เป็นต้น
แผนภาพที่แสดงการทำงานของ Java Virtual Machine มีดังนี้:

Dalvik Virtual Machine
Dalvik Virtual Machine เป็นเวอร์ชันของ Java Virtual Machine ที่เพิ่มประสิทธิภาพสำหรับอุปกรณ์มือถือที่ใช้พลังงานต่ำ เช่น โทรศัพท์มือถือ DVM เพิ่มประสิทธิภาพระบบมือถือสำหรับอายุแบตเตอรี่ หน่วยความจำ และประสิทธิภาพโดยรวม
โปรแกรมที่ตั้งใจสำหรับ Android จะเขียนใน Java ก่อน แล้วคอมไพล์เป็น bytecode สำหรับ JVM หลังจากนั้น bytecode นี้จะถูกแปลเป็น Dalvik bytecode และเก็บในไฟล์ .dex และ .odex ซึ่งเป็นไฟล์ Dalvik executable และ Optimized Dalvik executable ตามลำดับ
รูปที่แสดงการทำงานของ Dalvik Virtual Machine มีดังนี้:
